Example #1
0
 /**
  * Load config for application modules
  *
  * @return void
  */
 public function load()
 {
     $app = \Magelight\App::getInstance();
     $loader = \Magelight\Components\Loaders\Config::forge();
     $loader->loadConfig($app->getAppDir() . DS . 'etc' . DS . 'config.xml');
     $this->config = $loader->getConfig();
     $modulesConfigString = $this->getConfigBool('global/app/cache_modules_config', false) ? $this->cache()->get($this->buildCacheKey('modules_config')) : false;
     /* Loading modules config */
     if (!$modulesConfigString) {
         $loader->setConfig($this->config);
         foreach (array_reverse($app->getModuleDirectories()) as $modulesDir) {
             foreach (\Magelight\Components\Modules::getInstance()->getActiveModules() as $module) {
                 $filename = $loader->getModulesConfigFilePath($modulesDir, $module);
                 if ($filename) {
                     $loader->loadConfig($filename);
                 }
             }
         }
         $modulesConfig = $loader->getConfig();
         if ($this->getConfigBool('global/app/cache_modules_config', false)) {
             $this->cache()->set($this->buildCacheKey('modules_config'), $modulesConfig->asXML(), 3600);
         }
         $this->config = $modulesConfig;
     } else {
         $this->config = simplexml_load_string($modulesConfigString);
     }
     unset($loader);
 }