Changeset 981
- Timestamp:
- 08/13/10 19:40:21 (18 months ago)
- Location:
- trunk/engine/classes
- Files:
-
- 2 modified
-
Engine.class.php (modified) (5 diffs)
-
Entity.class.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/engine/classes/Engine.class.php
r979 r981 122 122 $iTimeId=$oProfiler->Start('InitModule',get_class($oModule)); 123 123 124 $oModule->Init(); 125 $oModule->SetInit(); 124 $this->InitModule($oModule); 126 125 127 126 $oProfiler->Stop($iTimeId); 128 127 } 129 128 } 129 } 130 131 /** 132 * Инициализирует модуль 133 * 134 * @param unknown_type $oModule 135 */ 136 protected function InitModule($oModule){ 137 $sOrigClassName = $sClassName = get_class($oModule); 138 $bRunHooks = false; 139 140 if($this->isInitModule('ModuleHook')){ 141 $bRunHooks = true; 142 while(preg_match('#^Plugin#i', $sClassName)){ 143 $sParentClassName = get_parent_class($sClassName); 144 if($sParentClassName == 'Module'){ 145 break; 146 } 147 $sClassName = $sParentClassName; 148 } 149 } 150 151 if($bRunHooks || $sClassName == 'ModuleHook'){ 152 $sHookPrefix = 'module_'; 153 if($sPluginName = $this->GetPluginName($sClassName)){ 154 $sHookPrefix .= "plugin{$sPluginName}_"; 155 } 156 $sHookPrefix .= $this->GetModuleName($sClassName).'_init_'; 157 } 158 159 if($bRunHooks){ 160 $this->Hook_Run($sHookPrefix.'before'); 161 } 162 $oModule->Init(); 163 $oModule->SetInit(); 164 if($bRunHooks || $sClassName == 'ModuleHook'){ 165 $this->Hook_Run($sHookPrefix.'after'); 166 } 167 } 168 169 /** 170 * Проверяет модуль на инициализацию 171 * 172 * @param unknown_type $sModuleClass 173 * @return unknown 174 */ 175 public function isInitModule($sModuleClass) { 176 if(!in_array($sModuleClass,array('ModulePlugin','ModuleHook'))) { 177 $sModuleClass=$this->Plugin_GetDelegate('module',$sModuleClass); 178 } 179 if(isset($this->aModules[$sModuleClass]) and $this->aModules[$sModuleClass]->isInit()){ 180 return true; 181 } 182 return false; 130 183 } 131 184 … … 150 203 * Выполняет загрузку модуля по его названию 151 204 * 152 * @param string $sModule Name205 * @param string $sModuleClass 153 206 * @param bool $bInit - инициализировать модуль или нет 154 207 * @return Module 155 208 */ 156 public function LoadModule($sModule Name,$bInit=false) {209 public function LoadModule($sModuleClass,$bInit=false) { 157 210 $tm1=microtime(true); 158 211 … … 160 213 * Создаем объект модуля 161 214 */ 162 $oModule=new $sModuleName($this); 163 if ($bInit or $sModuleName=='Cache') { 164 $oModule->Init(); 165 $oModule->SetInit(); 166 } 167 $this->aModules[$sModuleName]=$oModule; 215 $oModule=new $sModuleClass($this); 216 $this->aModules[$sModuleClass]=$oModule; 217 if ($bInit or $sModuleClass=='ModuleCache') { 218 $this->InitModule($oModule); 219 } 168 220 $tm2=microtime(true); 169 221 $this->iTimeLoadModule+=$tm2-$tm1; 170 dump("load $sModule Name- \t\t".($tm2-$tm1)."");222 dump("load $sModuleClass - \t\t".($tm2-$tm1).""); 171 223 return $oModule; 172 224 } … … 327 379 328 380 if (!method_exists($oModule,$sMethod)) { 329 throw new Exception("The module has no required method: ".$sModuleName.'->'.$sMethod.'()'); 381 // comment for ORM testing 382 //throw new Exception("The module has no required method: ".$sModuleName.'->'.$sMethod.'()'); 330 383 } 331 384 … … 546 599 547 600 public static function GetEntityName($oEntity) { 548 if (preg_match('/Entity([^_]+)/',is_string($o Module) ? $oModule : get_class($oModule),$aMatches)) {601 if (preg_match('/Entity([^_]+)/',is_string($oEntity) ? $oEntity : get_class($oEntity),$aMatches)) { 549 602 if(isset($aMatches[1])) { 550 603 return $aMatches[1]; -
trunk/engine/classes/Entity.class.php
r980 r981 69 69 $sType=strtolower(substr($sName,0,3)); 70 70 if (!strpos($sName,'_') and in_array($sType,array('get','set'))) { 71 $sKey= strtolower(preg_replace('/([^A-Z])([A-Z])/',"$1_$2",substr($sName,3)));71 $sKey=func_underscore(substr($sName,3)); 72 72 if ($sType=='get') { 73 73 if (isset($this->_aData[$sKey])) { … … 75 75 } else { 76 76 if (preg_match('/Entity([^_]+)/',get_class($this),$sModulePrefix)) { 77 $sModulePrefix= strtolower($sModulePrefix[1]).'_';77 $sModulePrefix=func_underscore($sModulePrefix[1]).'_'; 78 78 if (isset($this->_aData[$sModulePrefix.$sKey])) { 79 79 return $this->_aData[$sModulePrefix.$sKey];
