예제 #1
0
 private static function _loadSettingsRecursive(&$settings, $cmpClass)
 {
     echo "{$cmpClass} is brand new! (not yet in componentClasses)\n";
     Kwf_Component_Settings::$_rebuildingSettings = true;
     $settings[$cmpClass] = Kwf_Component_Settings::_getSettingsIncludingPreComputed($cmpClass);
     Kwf_Component_Settings::$_rebuildingSettings = false;
     foreach (self::_getComponentClassesFromGeneratorsSetting($settings[$cmpClass]['generators']) as $c) {
         if (!isset($settings[$c])) {
             self::_loadSettingsRecursive($settings, $c);
         }
     }
 }
예제 #2
0
 public static function &_getSettingsCached()
 {
     self::$_cacheSettings = array();
     if (!self::$_settings) {
         if (!self::$_rootComponentClassSet && file_exists('build/component/settings')) {
             self::$_settings = unserialize(file_get_contents('build/component/settings'));
         } else {
             $fullT = microtime(true);
             self::$_rebuildingSettings = true;
             self::$_settings = array();
             self::$_settings['mtimeFiles'] = array();
             $incPaths = explode(PATH_SEPARATOR, get_include_path());
             $t = microtime(true);
             $classes = self::getComponentClasses();
             foreach ($classes as $c) {
                 self::$_settings[$c] = self::_getSettingsIncludingPreComputed($c);
             }
             self::$_rebuildingSettings = false;
             foreach (self::getComponentClasses() as $c) {
                 $realCls = strpos($c, '.') ? substr($c, 0, strpos($c, '.')) : $c;
                 try {
                     call_user_func(array($realCls, 'validateSettings'), self::$_settings[$c], $c);
                 } catch (Kwf_Exception $e) {
                     throw new Kwf_Exception("{$c}: " . $e->getMessage());
                 }
             }
         }
     }
     return self::$_settings;
 }