Index: branches/unlabeled/unlabeled-1.25.2/core/kernel/utility/unit_config_reader.php =================================================================== diff -u -r4078 -r4350 --- branches/unlabeled/unlabeled-1.25.2/core/kernel/utility/unit_config_reader.php (.../unit_config_reader.php) (revision 4078) +++ branches/unlabeled/unlabeled-1.25.2/core/kernel/utility/unit_config_reader.php (.../unit_config_reader.php) (revision 4350) @@ -138,7 +138,7 @@ foreach ($this->configData as $prefix => $config) { $this->parseConfig($prefix); } - + $this->Application->HandleEvent( new kEvent('m:OnAfterConfigRead') ); } @@ -284,36 +284,27 @@ { $config =& $this->configData[$prefix]; $event_manager =& $this->Application->recallObject('EventManager'); + + $register_classes = getArrayValue($config,'RegisterClasses'); + if (!$register_classes) $register_classes = array(); $class_params=Array('ItemClass','ListClass','EventHandlerClass','TagProcessorClass'); foreach($class_params as $param_name) { if ( !(isset($config[$param_name]) ) ) continue; - $class_info =& $config[$param_name]; - $pseudo_class = $this->getPrefixByParamName($param_name,$prefix); - $this->Application->registerClass( $class_info['class'], - $config['BasePath'].'/'.$class_info['file'], - $pseudo_class); - $event_manager->registerBuildEvent($pseudo_class,$class_info['build_event']); - - // register classes on which current class depends - $require_classes = getArrayValue($class_info, 'require_classes'); - if($require_classes) - { - foreach($require_classes as $require_class) - { - $this->Application->Factory->registerDependency($class_info['class'], $require_class); - } - } + $config[$param_name]['pseudo'] = $this->getPrefixByParamName($param_name,$prefix); + $register_classes[] = $config[$param_name]; } - $register_classes = getArrayValue($config,'RegisterClasses'); - if($register_classes) + foreach($register_classes as $class_info) { - foreach($register_classes as $class_info) - { - $this->Application->registerClass( $class_info['class'], - $config['BasePath'].'/'.$class_info['file'], - $class_info['pseudo']); + $this->Application->registerClass( + $class_info['class'], + $config['BasePath'].'/'.$class_info['file'], + $class_info['pseudo'], + getArrayValue($class_info, 'require_classes') + ); + if (getArrayValue($class_info, 'build_event')) { + $event_manager->registerBuildEvent($class_info['pseudo'],$class_info['build_event']); } } @@ -432,7 +423,7 @@ else { $this->configData[$prefix][$name] = $value; } - + } function getPrefixByParamName($paramName,$prefix)