X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FConfig%2FConfigCacheLoader.php;h=55213493762710329cf47ccf5404dd6fe79f9f4a;hb=6a9d73f7d9711bcd29142b8614fe6ddc09f4eae1;hp=a23e1e848a07259878e8dc5d680dc669206312df;hpb=bc73d4bd2bbbb7c045b063c25c136f00480179c0;p=friendica.git diff --git a/src/Core/Config/ConfigCacheLoader.php b/src/Core/Config/ConfigCacheLoader.php index a23e1e848a..5521349376 100644 --- a/src/Core/Config/ConfigCacheLoader.php +++ b/src/Core/Config/ConfigCacheLoader.php @@ -2,6 +2,8 @@ namespace Friendica\Core\Config; +use Friendica\Core\Addon; + /** * The ConfigCacheLoader loads config-files and stores them in a ConfigCache ( @see ConfigCache ) * @@ -16,7 +18,7 @@ class ConfigCacheLoader * The Sub directory of the config-files * @var string */ - const SUBDIRECTORY = '/config/'; + const SUBDIRECTORY = '/config/'; private $baseDir; private $configDir; @@ -38,8 +40,8 @@ class ConfigCacheLoader // Setting at least the basepath we know $config->set('system', 'basepath', $this->baseDir); - $config->loadConfigArray($this->loadConfigFile('defaults')); - $config->loadConfigArray($this->loadConfigFile('settings')); + $config->loadConfigArray($this->loadCoreConfig('defaults')); + $config->loadConfigArray($this->loadCoreConfig('settings')); // Legacy .htconfig.php support if (file_exists($this->baseDir . '/.htpreconfig.php')) { @@ -80,16 +82,11 @@ class ConfigCacheLoader } } - if (file_exists($this->baseDir . '/config/local.config.php')) { - $config->loadConfigArray($this->loadConfigFile('local'), true); - } elseif (file_exists($this->baseDir . '/config/local.ini.php')) { - $config->loadConfigArray($this->loadINIConfigFile('local'), true); - } + $config->loadConfigArray($this->loadCoreConfig('local'), true); } /** - * Tries to load the specified legacy configuration file into the App->config array. - * Doesn't overwrite previously set values by default to prevent default config files to supersede DB Config. + * Tries to load the specified legacy configuration file into the ConfigCache (@see ConfigCache ). * * @deprecated since version 2018.12 * @param string $filename @@ -117,8 +114,7 @@ class ConfigCacheLoader } /** - * Tries to load the specified configuration file into the App->config array. - * Doesn't overwrite previously set values by default to prevent default config files to supersede DB Config. + * Tries to load the specified configuration file and returns the config array. * * The config format is PHP array and the template for configuration files is the following: * @@ -128,14 +124,13 @@ class ConfigCacheLoader * ], * ]; * - * @param string $filename - * @return array The configuration - * @throws \Exception + * @param string $filepath The filepath of the + * @return array The config array0 + * + * @throws \Exception if the config cannot get loaded. */ - public function loadConfigFile($filename) + private function loadConfigFile($filepath) { - $filepath = $this->configDir . $filename . ".config.php"; - if (!file_exists($filepath)) { throw new \Exception('Error loading non-existent config file ' . $filepath); } @@ -150,22 +145,43 @@ class ConfigCacheLoader } /** - * Loads addons configuration files + * Tries to load the specified core-configuration and returns the config array. + * + * @param string $name The name of the configuration + * + * @return array The config array (empty if no config found) + * + * @throws \Exception if the configuration file isn't readable + */ + public function loadCoreConfig($name) + { + if (file_exists($this->configDir . $name . '.config.php')) { + return $this->loadConfigFile($this->configDir . $name . '.config.php'); + } elseif (file_exists($this->configDir . $name . '.ini.php')) { + return $this->loadINIConfigFile($this->configDir . $name . '.ini.php'); + } else { + return []; + } + } + + /** + * Tries to load the specified addon-configuration and returns the config array. * * First loads all activated addons default configuration through the load_config hook, then load the local.config.php * again to overwrite potential local addon configuration. * - * @return array The config array + * @param string $name The name of the configuration * - * @throws \Exception + * @return array The config array (empty if no config found) + * + * @throws \Exception if the configuration file isn't readable */ - public function loadAddonConfig() + public function loadAddonConfig($name) { - // Load the local addon config file to overwritten default addon config values - if (file_exists($this->configDir . 'addon.config.php')) { - return $this->loadConfigFile('addon'); - } elseif (file_exists($this->configDir . 'addon.ini.php')) { - return $this->loadINIConfigFile('addon'); + $filepath = $this->baseDir . Addon::DIRECTORY . $name . self::SUBDIRECTORY . $name . ".config.php"; + + if (file_exists($filepath)) { + return $this->loadConfigFile($filepath); } else { return []; }