예제 #1
0
 /**
  * @return Config
  */
 public function getConfig()
 {
     if (is_null($this->configObj)) {
         $defaultConfig = $this->getDefaultConfig();
         $globalConfig = $this->readConfig(self::GLOBAL_CONFIG);
         $localConfig = $this->readConfig(self::LOCAL_CONFIG);
         $config = ArrayUtils::mergeRecursive($defaultConfig, $globalConfig, $localConfig);
         $this->configObj = new Config($config);
     }
     return $this->configObj;
 }
예제 #2
0
 public function joinRight(array $data)
 {
     $this->configRaw = ArrayUtils::mergeRecursive($this->configRaw, $data);
     $this->childConfig = [];
 }
예제 #3
0
 public function readMenu()
 {
     $configDir = $this->getConfigDir();
     $globalMenu = $this->readMenuRaw($configDir . "global.menu.php", []);
     $localMenu = $this->readMenuRaw($configDir . "local.menu.php", []);
     $moduleManager = $this->getModuleManager();
     $modules = $moduleManager->getModulesList();
     $menuConfig = [];
     foreach ($modules as $moduleName) {
         $modulePath = $moduleManager->getModulePath($moduleName);
         $moduleConfig = $this->readMenuRaw($modulePath . "/config/menu.php", null);
         if ($moduleConfig) {
             $menuConfig = array_merge_recursive($menuConfig, $moduleConfig);
         }
     }
     $menuConfig = ArrayUtils::mergeRecursive($menuConfig, $globalMenu, $localMenu);
     return $menuConfig;
 }
예제 #4
0
 public function render($params = [], $templateName = null)
 {
     if (!is_null($templateName)) {
         $this->setTemplate($templateName);
     }
     $vars = $this->getAssignedVars();
     $vars = ArrayUtils::mergeRecursive($vars, $params);
     $globalVars = $this->getGlobalVars();
     $render = $this->getRender();
     foreach ($globalVars as $name => $value) {
         $render->addGlobal($name, $value);
     }
     /** @var \Twig_Environment $template */
     $template = $this->getTemplate();
     $output = $render->render($template, $vars);
     return $output;
 }
예제 #5
0
 public function getListArrayConfigs($fileConfigName, $recursiveMerge = false)
 {
     $modules = $this->getModulesList();
     $configs = [];
     foreach ($modules as $module) {
         $path = $this->getModulePath($module);
         if (!$path) {
             throw new \Exception("Path for module {$module} not found");
         }
         $configFile = $path . "/config/{$fileConfigName}.php";
         if (!file_exists($configFile)) {
             continue;
         }
         $moduleResources = (include $configFile);
         if ($recursiveMerge) {
             $configs = ArrayUtils::mergeRecursive($configs, $moduleResources);
         } else {
             $configs = array_merge($configs, $moduleResources);
         }
     }
     return $configs;
 }