Index: trunk/core/units/general/inp_ses_storage.php =================================================================== diff -u -r2299 -r2540 --- trunk/core/units/general/inp_ses_storage.php (.../inp_ses_storage.php) (revision 2299) +++ trunk/core/units/general/inp_ses_storage.php (.../inp_ses_storage.php) (revision 2540) @@ -1,7 +1,5 @@ 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) + { + $class_file = $this->Application->Factory->getFileByClassName($require_class); + $this->Application->registerClass($class_info['class'], $class_file, $require_class); + } + } } $register_classes = getArrayValue($config,'RegisterClasses'); Index: trunk/core/kernel/utility/factory.php =================================================================== diff -u -r1560 -r2540 --- trunk/core/kernel/utility/factory.php (.../factory.php) (revision 1560) +++ trunk/core/kernel/utility/factory.php (.../factory.php) (revision 2540) @@ -135,10 +135,9 @@ if(!$this->Files[$real_class]) trigger_error('Real Class '.$real_class.' is not registered with the Factory', E_USER_ERROR); if(!file_exists($this->Files[$real_class])) trigger_error('Include file for class '.$real_class.' ('.$this->Files[$real_class].') does not exists', E_USER_ERROR); - if ( $deps = getArrayValue($this->Dependencies, $real_class) ) { - foreach ($deps as $filename) { - k4_include_once($filename); - } + if( $deps = getArrayValue($this->Dependencies, $real_class) ) + { + foreach($deps as $filename) k4_include_once($filename); } k4_include_once($this->Files[$real_class]); @@ -202,13 +201,19 @@ if(!isset($pseudo_class)) $pseudo_class = $real_class; if(!isset($this->Files[$real_class])) $this->Files[$real_class]=$file; - if (getArrayValue($this->realClasses, $pseudo_class)) { + if( getArrayValue($this->realClasses, $pseudo_class) ) + { $this->Dependencies[$real_class][] = $this->Files[ $this->realClasses[$pseudo_class] ]; } $this->realClasses[$pseudo_class]=$real_class; } + function getFileByClassName($class_name) + { + return getArrayValue($this->Files, $class_name); + } + } ?> \ No newline at end of file Index: trunk/kernel/units/general/inp_ses_storage.php =================================================================== diff -u -r2299 -r2540 --- trunk/kernel/units/general/inp_ses_storage.php (.../inp_ses_storage.php) (revision 2299) +++ trunk/kernel/units/general/inp_ses_storage.php (.../inp_ses_storage.php) (revision 2540) @@ -1,7 +1,5 @@