Move path determination logic into the `ConfigFactory`
parent
5702944116
commit
27e4586597
|
@ -25,6 +25,7 @@ use Exception;
|
||||||
use Friendica\App\Arguments;
|
use Friendica\App\Arguments;
|
||||||
use Friendica\App\BaseURL;
|
use Friendica\App\BaseURL;
|
||||||
use Friendica\App\Module;
|
use Friendica\App\Module;
|
||||||
|
use Friendica\Factory\ConfigFactory;
|
||||||
use Friendica\Module\Maintenance;
|
use Friendica\Module\Maintenance;
|
||||||
use Friendica\Security\Authentication;
|
use Friendica\Security\Authentication;
|
||||||
use Friendica\Core\Config\Cache;
|
use Friendica\Core\Config\Cache;
|
||||||
|
@ -352,7 +353,7 @@ class App
|
||||||
$this->profiler->update($this->config);
|
$this->profiler->update($this->config);
|
||||||
|
|
||||||
Core\Hook::loadHooks();
|
Core\Hook::loadHooks();
|
||||||
$loader = new ConfigFileLoader($this->getBasePath(), $_SERVER);
|
$loader = (new ConfigFactory())->createConfigFileLoader($this->getBasePath(), $_SERVER);
|
||||||
Core\Hook::callAll('load_config', $loader);
|
Core\Hook::callAll('load_config', $loader);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,45 @@ use Friendica\Util\ConfigFileLoader;
|
||||||
|
|
||||||
class ConfigFactory
|
class ConfigFactory
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* The key of the $_SERVER variable to override the config directory
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const CONFIG_DIR_ENV = 'FRIENDICA_CONFIG_DIR';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Sub directory of the config-files
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const CONFIG_DIR = 'config';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Sub directory of the static config-files
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const STATIC_DIR = 'static';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $basePath The basepath of FRIENDICA
|
||||||
|
* @param array $serer the $_SERVER array
|
||||||
|
*
|
||||||
|
* @return ConfigFileLoader
|
||||||
|
*/
|
||||||
|
public function createConfigFileLoader(string $basePath, array $server = [])
|
||||||
|
{
|
||||||
|
if (!empty($server[self::CONFIG_DIR_ENV]) && is_dir($server[self::CONFIG_DIR_ENV])) {
|
||||||
|
$configDir = $server[self::CONFIG_DIR_ENV];
|
||||||
|
} else {
|
||||||
|
$configDir = $basePath . DIRECTORY_SEPARATOR . self::CONFIG_DIR;
|
||||||
|
}
|
||||||
|
$staticDir = $basePath . DIRECTORY_SEPARATOR . self::STATIC_DIR;
|
||||||
|
|
||||||
|
return new ConfigFileLoader($basePath, $configDir, $staticDir);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param ConfigFileLoader $loader The Config Cache loader (INI/config/.htconfig)
|
* @param ConfigFileLoader $loader The Config Cache loader (INI/config/.htconfig)
|
||||||
*
|
*
|
||||||
|
|
|
@ -29,6 +29,7 @@ use Friendica\Core\Update;
|
||||||
use Friendica\Database\DBA;
|
use Friendica\Database\DBA;
|
||||||
use Friendica\Database\DBStructure;
|
use Friendica\Database\DBStructure;
|
||||||
use Friendica\DI;
|
use Friendica\DI;
|
||||||
|
use Friendica\Factory\ConfigFactory;
|
||||||
use Friendica\Model\Register;
|
use Friendica\Model\Register;
|
||||||
use Friendica\Module\BaseAdmin;
|
use Friendica\Module\BaseAdmin;
|
||||||
use Friendica\Network\HTTPException\InternalServerErrorException;
|
use Friendica\Network\HTTPException\InternalServerErrorException;
|
||||||
|
@ -151,7 +152,7 @@ class Summary extends BaseAdmin
|
||||||
}
|
}
|
||||||
|
|
||||||
// check legacy basepath settings
|
// check legacy basepath settings
|
||||||
$configLoader = new ConfigFileLoader($a->getBasePath(), $_SERVER);
|
$configLoader = (new ConfigFactory())->createConfigFileLoader($a->getBasePath(), $_SERVER);
|
||||||
$configCache = new Cache();
|
$configCache = new Cache();
|
||||||
$configLoader->setupCache($configCache);
|
$configLoader->setupCache($configCache);
|
||||||
$confBasepath = $configCache->get('system', 'basepath');
|
$confBasepath = $configCache->get('system', 'basepath');
|
||||||
|
|
|
@ -35,27 +35,6 @@ use Friendica\Core\Config\Cache;
|
||||||
*/
|
*/
|
||||||
class ConfigFileLoader
|
class ConfigFileLoader
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* The key of the $_SERVER variable to override the config directory
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
const CONFIG_DIR_ENV = 'FRIENDICA_CONFIG_DIR';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The Sub directory of the config-files
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
const CONFIG_DIR = 'config';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The Sub directory of the static config-files
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
const STATIC_DIR = 'static';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The default name of the user defined ini file
|
* The default name of the user defined ini file
|
||||||
*
|
*
|
||||||
|
@ -90,15 +69,16 @@ class ConfigFileLoader
|
||||||
*/
|
*/
|
||||||
private $staticDir;
|
private $staticDir;
|
||||||
|
|
||||||
public function __construct(string $basePath, array $server)
|
/**
|
||||||
|
* @param string $baseDir The base
|
||||||
|
* @param string $configDir
|
||||||
|
* @param string $staticDir
|
||||||
|
*/
|
||||||
|
public function __construct(string $baseDir, string $configDir, string $staticDir)
|
||||||
{
|
{
|
||||||
$this->baseDir = $basePath;
|
$this->baseDir = $baseDir;
|
||||||
if (!empty($server[self::CONFIG_DIR_ENV]) && is_dir($server[self::CONFIG_DIR_ENV])) {
|
$this->configDir = $configDir;
|
||||||
$this->configDir = $server[self::CONFIG_DIR_ENV];
|
$this->staticDir = $staticDir;
|
||||||
} else {
|
|
||||||
$this->configDir = $this->baseDir . DIRECTORY_SEPARATOR . self::CONFIG_DIR;
|
|
||||||
}
|
|
||||||
$this->staticDir = $this->baseDir . DIRECTORY_SEPARATOR . self::STATIC_DIR;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -113,7 +93,7 @@ class ConfigFileLoader
|
||||||
*
|
*
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function setupCache(Cache $config, array $server = [], $raw = false)
|
public function setupCache(Cache $config, array $server = [], bool $raw = false)
|
||||||
{
|
{
|
||||||
// Load static config files first, the order is important
|
// Load static config files first, the order is important
|
||||||
$config->load($this->loadStaticConfig('defaults'), Cache::SOURCE_FILE);
|
$config->load($this->loadStaticConfig('defaults'), Cache::SOURCE_FILE);
|
||||||
|
@ -196,7 +176,7 @@ class ConfigFileLoader
|
||||||
$filepath = $this->baseDir . DIRECTORY_SEPARATOR . // /var/www/html/
|
$filepath = $this->baseDir . DIRECTORY_SEPARATOR . // /var/www/html/
|
||||||
Addon::DIRECTORY . DIRECTORY_SEPARATOR . // addon/
|
Addon::DIRECTORY . DIRECTORY_SEPARATOR . // addon/
|
||||||
$name . DIRECTORY_SEPARATOR . // openstreetmap/
|
$name . DIRECTORY_SEPARATOR . // openstreetmap/
|
||||||
self::CONFIG_DIR . DIRECTORY_SEPARATOR . // config/
|
'config'. DIRECTORY_SEPARATOR . // config/
|
||||||
$name . ".config.php"; // openstreetmap.config.php
|
$name . ".config.php"; // openstreetmap.config.php
|
||||||
|
|
||||||
if (file_exists($filepath)) {
|
if (file_exists($filepath)) {
|
||||||
|
@ -217,8 +197,7 @@ class ConfigFileLoader
|
||||||
*/
|
*/
|
||||||
public function loadEnvConfig(array $server)
|
public function loadEnvConfig(array $server)
|
||||||
{
|
{
|
||||||
$filepath = $this->baseDir . DIRECTORY_SEPARATOR . // /var/www/html/
|
$filepath = $this->staticDir . DIRECTORY_SEPARATOR . // /var/www/html/static/
|
||||||
self::STATIC_DIR . DIRECTORY_SEPARATOR . // static/
|
|
||||||
"env.config.php"; // env.config.php
|
"env.config.php"; // env.config.php
|
||||||
|
|
||||||
if (!file_exists($filepath)) {
|
if (!file_exists($filepath)) {
|
||||||
|
|
|
@ -74,10 +74,12 @@ return [
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
Util\ConfigFileLoader::class => [
|
Util\ConfigFileLoader::class => [
|
||||||
'shared' => true,
|
'instanceOf' => Factory\ConfigFactory::class,
|
||||||
'constructParams' => [
|
'call' => [
|
||||||
|
['createConfigFileLoader', [
|
||||||
[Dice::INSTANCE => '$basepath'],
|
[Dice::INSTANCE => '$basepath'],
|
||||||
$_SERVER,
|
$_SERVER,
|
||||||
|
], Dice::CHAIN_CALL],
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
Config\Cache::class => [
|
Config\Cache::class => [
|
||||||
|
|
|
@ -55,7 +55,7 @@ class DatabaseCacheTest extends CacheTest
|
||||||
|
|
||||||
// load real config to avoid mocking every config-entry which is related to the Database class
|
// load real config to avoid mocking every config-entry which is related to the Database class
|
||||||
$configFactory = new ConfigFactory();
|
$configFactory = new ConfigFactory();
|
||||||
$loader = new ConfigFileLoader($this->root->url(), []);
|
$loader = (new ConfigFactory())->createConfigFileLoader($this->root->url(), []);
|
||||||
$configCache = $configFactory->createCache($loader);
|
$configCache = $configFactory->createCache($loader);
|
||||||
|
|
||||||
$dba = new StaticDatabase($configCache, $profiler, $logger);
|
$dba = new StaticDatabase($configCache, $profiler, $logger);
|
||||||
|
|
|
@ -57,7 +57,7 @@ class DatabaseLockDriverTest extends LockTest
|
||||||
|
|
||||||
// load real config to avoid mocking every config-entry which is related to the Database class
|
// load real config to avoid mocking every config-entry which is related to the Database class
|
||||||
$configFactory = new ConfigFactory();
|
$configFactory = new ConfigFactory();
|
||||||
$loader = new ConfigFileLoader($this->root->url(), []);
|
$loader = (new ConfigFactory())->createConfigFileLoader($this->root->url(), []);
|
||||||
$configCache = $configFactory->createCache($loader);
|
$configCache = $configFactory->createCache($loader);
|
||||||
|
|
||||||
$dba = new StaticDatabase($configCache, $profiler, $logger);
|
$dba = new StaticDatabase($configCache, $profiler, $logger);
|
||||||
|
|
|
@ -33,7 +33,7 @@ class ProcessTest extends DatabaseTest
|
||||||
|
|
||||||
// load real config to avoid mocking every config-entry which is related to the Database class
|
// load real config to avoid mocking every config-entry which is related to the Database class
|
||||||
$configFactory = new ConfigFactory();
|
$configFactory = new ConfigFactory();
|
||||||
$loader = new ConfigFileLoader($this->root->url(), []);
|
$loader = (new ConfigFactory())->createConfigFileLoader($this->root->url(), []);
|
||||||
$configCache = $configFactory->createCache($loader);
|
$configCache = $configFactory->createCache($loader);
|
||||||
|
|
||||||
$this->dba = new StaticDatabase($configCache, $profiler, $logger);
|
$this->dba = new StaticDatabase($configCache, $profiler, $logger);
|
||||||
|
|
|
@ -55,7 +55,7 @@ class DatabaseStorageTest extends StorageTest
|
||||||
|
|
||||||
// load real config to avoid mocking every config-entry which is related to the Database class
|
// load real config to avoid mocking every config-entry which is related to the Database class
|
||||||
$configFactory = new ConfigFactory();
|
$configFactory = new ConfigFactory();
|
||||||
$loader = new ConfigFileLoader($this->root->url(), []);
|
$loader = (new ConfigFactory())->createConfigFileLoader($this->root->url(), []);
|
||||||
$configCache = $configFactory->createCache($loader);
|
$configCache = $configFactory->createCache($loader);
|
||||||
|
|
||||||
$dba = new StaticDatabase($configCache, $profiler, $logger);
|
$dba = new StaticDatabase($configCache, $profiler, $logger);
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
namespace Friendica\Test\src\Util\Config;
|
namespace Friendica\Test\src\Util\Config;
|
||||||
|
|
||||||
use Friendica\Core\Config\Cache;
|
use Friendica\Core\Config\Cache;
|
||||||
|
use Friendica\Factory\ConfigFactory;
|
||||||
use Friendica\Test\MockedTest;
|
use Friendica\Test\MockedTest;
|
||||||
use Friendica\Test\Util\VFSTrait;
|
use Friendica\Test\Util\VFSTrait;
|
||||||
use Friendica\Util\ConfigFileLoader;
|
use Friendica\Util\ConfigFileLoader;
|
||||||
|
@ -45,7 +46,11 @@ class ConfigFileLoaderTest extends MockedTest
|
||||||
{
|
{
|
||||||
$this->delConfigFile('local.config.php');
|
$this->delConfigFile('local.config.php');
|
||||||
|
|
||||||
$configFileLoader = new ConfigFileLoader($this->root->url(), []);
|
$configFileLoader = new ConfigFileLoader(
|
||||||
|
$this->root->url(),
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::CONFIG_DIR,
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::STATIC_DIR
|
||||||
|
);
|
||||||
$configCache = new Cache();
|
$configCache = new Cache();
|
||||||
|
|
||||||
$configFileLoader->setupCache($configCache);
|
$configFileLoader->setupCache($configCache);
|
||||||
|
@ -67,7 +72,11 @@ class ConfigFileLoaderTest extends MockedTest
|
||||||
->at($this->root->getChild('config'))
|
->at($this->root->getChild('config'))
|
||||||
->setContent('<?php return true;');
|
->setContent('<?php return true;');
|
||||||
|
|
||||||
$configFileLoader = new ConfigFileLoader($this->root->url(), []);
|
$configFileLoader = new ConfigFileLoader(
|
||||||
|
$this->root->url(),
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::CONFIG_DIR,
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::STATIC_DIR
|
||||||
|
);
|
||||||
$configCache = new Cache();
|
$configCache = new Cache();
|
||||||
|
|
||||||
$configFileLoader->setupCache($configCache);
|
$configFileLoader->setupCache($configCache);
|
||||||
|
@ -91,7 +100,11 @@ class ConfigFileLoaderTest extends MockedTest
|
||||||
->at($this->root->getChild('config'))
|
->at($this->root->getChild('config'))
|
||||||
->setContent(file_get_contents($file));
|
->setContent(file_get_contents($file));
|
||||||
|
|
||||||
$configFileLoader = new ConfigFileLoader($this->root->url(), []);
|
$configFileLoader = new ConfigFileLoader(
|
||||||
|
$this->root->url(),
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::CONFIG_DIR,
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::STATIC_DIR
|
||||||
|
);
|
||||||
$configCache = new Cache();
|
$configCache = new Cache();
|
||||||
|
|
||||||
$configFileLoader->setupCache($configCache);
|
$configFileLoader->setupCache($configCache);
|
||||||
|
@ -123,7 +136,11 @@ class ConfigFileLoaderTest extends MockedTest
|
||||||
->at($this->root->getChild('config'))
|
->at($this->root->getChild('config'))
|
||||||
->setContent(file_get_contents($file));
|
->setContent(file_get_contents($file));
|
||||||
|
|
||||||
$configFileLoader = new ConfigFileLoader($this->root->url(), []);
|
$configFileLoader = new ConfigFileLoader(
|
||||||
|
$this->root->url(),
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::CONFIG_DIR,
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::STATIC_DIR
|
||||||
|
);
|
||||||
$configCache = new Cache();
|
$configCache = new Cache();
|
||||||
|
|
||||||
$configFileLoader->setupCache($configCache);
|
$configFileLoader->setupCache($configCache);
|
||||||
|
@ -154,7 +171,11 @@ class ConfigFileLoaderTest extends MockedTest
|
||||||
->at($this->root)
|
->at($this->root)
|
||||||
->setContent(file_get_contents($file));
|
->setContent(file_get_contents($file));
|
||||||
|
|
||||||
$configFileLoader = new ConfigFileLoader($this->root->url(), []);
|
$configFileLoader = new ConfigFileLoader(
|
||||||
|
$this->root->url(),
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::CONFIG_DIR,
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::STATIC_DIR
|
||||||
|
);
|
||||||
$configCache = new Cache();
|
$configCache = new Cache();
|
||||||
|
|
||||||
$configFileLoader->setupCache($configCache);
|
$configFileLoader->setupCache($configCache);
|
||||||
|
@ -203,7 +224,11 @@ class ConfigFileLoaderTest extends MockedTest
|
||||||
->at($this->root->getChild('addon')->getChild('test')->getChild('config'))
|
->at($this->root->getChild('addon')->getChild('test')->getChild('config'))
|
||||||
->setContent(file_get_contents($file));
|
->setContent(file_get_contents($file));
|
||||||
|
|
||||||
$configFileLoader = new ConfigFileLoader($this->root->url(), []);
|
$configFileLoader = new ConfigFileLoader(
|
||||||
|
$this->root->url(),
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::CONFIG_DIR,
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::STATIC_DIR
|
||||||
|
);
|
||||||
|
|
||||||
$conf = $configFileLoader->loadAddonConfig('test');
|
$conf = $configFileLoader->loadAddonConfig('test');
|
||||||
|
|
||||||
|
@ -235,7 +260,11 @@ class ConfigFileLoaderTest extends MockedTest
|
||||||
->at($this->root->getChild('config'))
|
->at($this->root->getChild('config'))
|
||||||
->setContent(file_get_contents($fileDir . 'B.config.php'));
|
->setContent(file_get_contents($fileDir . 'B.config.php'));
|
||||||
|
|
||||||
$configFileLoader = new ConfigFileLoader($this->root->url(), []);
|
$configFileLoader = new ConfigFileLoader(
|
||||||
|
$this->root->url(),
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::CONFIG_DIR,
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::STATIC_DIR
|
||||||
|
);
|
||||||
$configCache = new Cache();
|
$configCache = new Cache();
|
||||||
|
|
||||||
$configFileLoader->setupCache($configCache);
|
$configFileLoader->setupCache($configCache);
|
||||||
|
@ -264,7 +293,11 @@ class ConfigFileLoaderTest extends MockedTest
|
||||||
->at($this->root->getChild('config'))
|
->at($this->root->getChild('config'))
|
||||||
->setContent(file_get_contents($fileDir . 'B.ini.php'));
|
->setContent(file_get_contents($fileDir . 'B.ini.php'));
|
||||||
|
|
||||||
$configFileLoader = new ConfigFileLoader($this->root->url(), []);
|
$configFileLoader = new ConfigFileLoader(
|
||||||
|
$this->root->url(),
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::CONFIG_DIR,
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::STATIC_DIR
|
||||||
|
);
|
||||||
$configCache = new Cache();
|
$configCache = new Cache();
|
||||||
|
|
||||||
$configFileLoader->setupCache($configCache);
|
$configFileLoader->setupCache($configCache);
|
||||||
|
@ -293,7 +326,11 @@ class ConfigFileLoaderTest extends MockedTest
|
||||||
->at($this->root->getChild('config'))
|
->at($this->root->getChild('config'))
|
||||||
->setContent(file_get_contents($fileDir . 'B.ini.php'));
|
->setContent(file_get_contents($fileDir . 'B.ini.php'));
|
||||||
|
|
||||||
$configFileLoader = new ConfigFileLoader($this->root->url(), []);
|
$configFileLoader = new ConfigFileLoader(
|
||||||
|
$this->root->url(),
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::CONFIG_DIR,
|
||||||
|
$this->root->url() . DIRECTORY_SEPARATOR . ConfigFactory::STATIC_DIR
|
||||||
|
);
|
||||||
$configCache = new Cache();
|
$configCache = new Cache();
|
||||||
|
|
||||||
$configFileLoader->setupCache($configCache);
|
$configFileLoader->setupCache($configCache);
|
||||||
|
@ -309,7 +346,7 @@ class ConfigFileLoaderTest extends MockedTest
|
||||||
{
|
{
|
||||||
$this->delConfigFile('local.config.php');
|
$this->delConfigFile('local.config.php');
|
||||||
|
|
||||||
$configFileLoader = new ConfigFileLoader($this->root->url(), ['FRIENDICA_CONFIG_DIR' => '/a/wrong/dir/']);
|
$configFileLoader = (new ConfigFactory())->createConfigFileLoader($this->root->url(), ['FRIENDICA_CONFIG_DIR' => '/a/wrong/dir/']);
|
||||||
$configCache = new Cache();
|
$configCache = new Cache();
|
||||||
|
|
||||||
$configFileLoader->setupCache($configCache);
|
$configFileLoader->setupCache($configCache);
|
||||||
|
@ -334,7 +371,7 @@ class ConfigFileLoaderTest extends MockedTest
|
||||||
->at($this->root->getChild('config2'))
|
->at($this->root->getChild('config2'))
|
||||||
->setContent(file_get_contents($fileDir . 'B.config.php'));
|
->setContent(file_get_contents($fileDir . 'B.config.php'));
|
||||||
|
|
||||||
$configFileLoader = new ConfigFileLoader($this->root->url(), ['FRIENDICA_CONFIG_DIR' => $this->root->getChild('config2')->url()]);
|
$configFileLoader = (new ConfigFactory())->createConfigFileLoader($this->root->url(), ['FRIENDICA_CONFIG_DIR' => $this->root->getChild('config2')->url()]);
|
||||||
$configCache = new Cache();
|
$configCache = new Cache();
|
||||||
|
|
||||||
$configFileLoader->setupCache($configCache);
|
$configFileLoader->setupCache($configCache);
|
||||||
|
|
Loading…
Reference in New Issue