X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FConfig%2FConfigCacheLoader.php;h=55213493762710329cf47ccf5404dd6fe79f9f4a;hb=6a9d73f7d9711bcd29142b8614fe6ddc09f4eae1;hp=ea9cbf23dbed6eb1af96ab4f6772ed60ee8ca511;hpb=bdfe0c35fb0c42e12fa5f530d3d80db0b498386f;p=friendica.git diff --git a/src/Core/Config/ConfigCacheLoader.php b/src/Core/Config/ConfigCacheLoader.php index ea9cbf23db..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 ) * @@ -17,11 +19,6 @@ class ConfigCacheLoader * @var string */ const SUBDIRECTORY = '/config/'; - /** - * The addon sub-directory - * @var string - */ - const ADDONSDIRECTORY = '/addons/'; private $baseDir; private $configDir; @@ -43,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')) { @@ -85,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 @@ -122,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: * @@ -133,19 +124,13 @@ class ConfigCacheLoader * ], * ]; * - * @param string $filename - * @param bool $addon True, if a config for an addon should be loaded - * @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, $addon = false) + private function loadConfigFile($filepath) { - if ($addon) { - $filepath = $this->baseDir . self::ADDONSDIRECTORY . self::SUBDIRECTORY . $filename . ".config.php"; - } else { - $filepath = $this->configDir . $filename . ".config.php"; - } - if (!file_exists($filepath)) { throw new \Exception('Error loading non-existent config file ' . $filepath); } @@ -160,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 []; }