diff --git a/src/Graby.php b/src/Graby.php index b9bf72a6..cb806092 100644 --- a/src/Graby.php +++ b/src/Graby.php @@ -113,6 +113,16 @@ public function setLogger(LoggerInterface $logger) $this->httpClient->setLogger($logger); } + /** + * Reload configuration files. + * + * @see ConfigBuilder::loadConfigFiles + */ + public function reloadConfigFiles() + { + $this->configBuilder->loadConfigFiles(); + } + /** * Return a config. * diff --git a/src/SiteConfig/ConfigBuilder.php b/src/SiteConfig/ConfigBuilder.php index a9d023d5..553ee847 100644 --- a/src/SiteConfig/ConfigBuilder.php +++ b/src/SiteConfig/ConfigBuilder.php @@ -37,7 +37,7 @@ public function __construct($config = [], LoggerInterface $logger = null) $this->logger = new NullLogger(); } - $this->configFiles = Files::getFiles($this->config['site_config']); + $this->loadConfigFiles(); } public function setLogger(LoggerInterface $logger) @@ -45,6 +45,18 @@ public function setLogger(LoggerInterface $logger) $this->logger = $logger; } + /** + * Load configuration files from filesystem. + * The load is externalized into a dedicated public method so we can reload config files after a custom creation of a config file. + * - Config files are loaded when the class is instancied. + * - If we add a new file after, it won't be loaded. + * - We'll need to manually reload config files. + */ + public function loadConfigFiles() + { + $this->configFiles = Files::getFiles($this->config['site_config']); + } + /** * Add the given SiteConfig to the cache. *