Merge pull request #9373 from nupplaphil/task/server_env

Introduce possibility for mapping $_SERVER variables to config-cache values
This commit is contained in:
Hypolite Petovan 2020-10-08 15:00:31 -04:00 committed by GitHub
commit ae6b380362
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 194 additions and 81 deletions

View file

@ -32,6 +32,11 @@ return [
// Can contain the port number with the syntax "hostname:port".
'hostname' => '',
// port (Integer)
// Port of the database server.
// Can be used instead of adding a port number to the hostname
'port' => null,
// user (String)
// Database user name. Please don't use "root".
'username' => '',

View file

@ -81,7 +81,7 @@ return [
Config\Cache::class => [
'instanceOf' => Factory\ConfigFactory::class,
'call' => [
['createCache', [], Dice::CHAIN_CALL],
['createCache', [$_SERVER], Dice::CHAIN_CALL],
],
],
App\Mode::class => [
@ -105,7 +105,6 @@ return [
Database::class => [
'constructParams' => [
[Dice::INSTANCE => \Psr\Log\NullLogger::class],
$_SERVER,
],
],
/**

31
static/env.config.php Normal file
View file

@ -0,0 +1,31 @@
<?php
/**
* @copyright Copyright (C) 2020, Friendica
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* Main mapping table of environment variables to namespaced config values
*
*/
return [
'MYSQL_HOST' => ['database', 'hostname'],
'MYSQL_USERNAME' => ['database', 'username'],
'MYSQL_USER' => ['database', 'username'],
'MYSQL_PORT' => ['database', 'port'],
'MYSQL_PASSWORD' => ['database', 'password'],
'MYSQL_DATABASE' => ['database', 'database'],
];