
Public Member Functions | |
| reset () | |
| clearCache () | |
| __print () | |
| timeSoFar () | |
| requireClass ($classname) | |
| classExists ($classname) | |
Static Public Member Functions | |
| static | getInstance () |
Protected Member Functions | |
| __construct () | |
| checkDynamic () | |
| populateMap () | |
| getClassPath ($classname) | |
| saveMap ($path, $map) | |
Protected Attributes | |
| $dynamap = array() | |
| $debug_log = array() | |
| $timer = null | |
| $populating = false | |
| $classmap | |
| $extmap | |
Static Private Attributes | |
| static | $instance = __CLASS__ |
Definition at line 82 of file classloader.php.
| smartClassMapper::__construct | ( | ) | [protected] |
Definition at line 178 of file classloader.php.
00178 { 00179 $this->timer = new aliroProfiler('Time so far'); 00180 }
| static smartClassMapper::getInstance | ( | ) | [static] |
Reimplemented in smartAdminClassMapper.
Definition at line 182 of file classloader.php.
Referenced by aliro::classExists(), aliroExtensionInstaller::handleClasses(), aliro::requireClass(), and aliro::startup().
00182 { 00183 if (!is_object(self::$instance)) { 00184 self::$instance = parent::getCachedSingleton(self::$instance); 00185 self::$instance->reset(); 00186 } 00187 self::$instance->checkDynamic(); 00188 return self::$instance; 00189 }
| smartClassMapper::checkDynamic | ( | ) | [protected] |
Definition at line 191 of file classloader.php.
References cachedSingleton::cacheNow(), aliro::getInstance(), and populateMap().
00191 { 00192 if (aliro::getInstance()->installed AND 0 == count($this->dynamap) AND !$this->populating) { 00193 $this->populating = true; 00194 $this->populateMap(); 00195 $this->populating = false; 00196 $this->cacheNow(); 00197 } 00198 }
| smartClassMapper::reset | ( | ) |
| smartClassMapper::clearCache | ( | ) |
Definition at line 204 of file classloader.php.
References populateMap().
00204 { 00205 $this->dynamap = array(); 00206 $this->populateMap(); 00207 parent::clearCache(); 00208 }
| smartClassMapper::__print | ( | ) |
Definition at line 210 of file classloader.php.
References T_().
00210 { 00211 return sprintf(T_('SmartClassMapper, %s dynamic items, % logs'), count($this->dynamap), count($this->debug_log)); 00212 }
| smartClassMapper::populateMap | ( | ) | [protected] |
Reimplemented in smartAdminClassMapper.
Definition at line 214 of file classloader.php.
References aliroCoreDatabase::getInstance(), and saveMap().
Referenced by checkDynamic(), and clearCache().
00214 { 00215 $database = aliroCoreDatabase::getInstance(); 00216 $database->setQuery('SELECT * FROM #__classmap WHERE side != "admin"'); 00217 $maps = $database->loadObjectList(); 00218 if ($maps) foreach ($maps as $map) { 00219 switch ($map->type) { 00220 case 'component': 00221 $path = 'components/'.$map->formalname.'/'; 00222 break; 00223 case 'module': 00224 $path = 'modules/'.$map->formalname.'/'; 00225 break; 00226 case 'mambot': 00227 $path = 'mambots/'.$map->formalname.'/'; 00228 break; 00229 case 'template': 00230 $path = 'templates/'.$map->formalname.'/'; 00231 break; 00232 default: continue; 00233 } 00234 $this->saveMap($path, $map); 00235 } 00236 }
| smartClassMapper::timeSoFar | ( | ) |
| smartClassMapper::getClassPath | ( | $ | classname | ) | [protected] |
Reimplemented in smartAdminClassMapper.
Definition at line 242 of file classloader.php.
References criticalInfo::getInstance(), aliroDebug::getInstance(), T_(), and timeSoFar().
Referenced by classExists(), and requireClass().
00242 { 00243 aliroDebug::getInstance()->setDebugData (sprintf('About to load %s, current used memory %s', $classname, (is_callable('memory_get_usage') ? memory_get_usage() : T_('not known')).$this->timeSoFar())); 00244 $base = criticalInfo::getInstance()->class_base.'/'; 00245 if (isset($this->dynamap[$classname])) return $base.$this->dynamap[$classname].'.php'; 00246 if (isset($this->classmap[$classname])) return $base.'classes/'.$this->classmap[$classname].'.php'; 00247 if (isset($this->extmap[$classname])) return $base.'extclasses/'.$this->extmap[$classname].'.php'; 00248 if (file_exists($base.'classes/'.$classname.'.php')) return $base.'classes/'.$classname.'.php'; 00249 return ''; 00250 }
| smartClassMapper::requireClass | ( | $ | classname | ) |
Definition at line 252 of file classloader.php.
References getClassPath().
00252 { 00253 $path = $this->getClassPath($classname); 00254 if ($path AND file_exists($path)) require_once($path); 00255 else { 00256 $message = sprintf('Class %s not found, trying with path = %s', $classname, $path); 00257 trigger_error($message); 00258 } 00259 }
| smartClassMapper::classExists | ( | $ | classname | ) |
Definition at line 261 of file classloader.php.
References getClassPath().
00261 { 00262 return $this->getClassPath($classname) ? true : false; 00263 }
| smartClassMapper::saveMap | ( | $ | path, | |
| $ | map | |||
| ) | [protected] |
Definition at line 265 of file classloader.php.
References T_().
Referenced by populateMap(), and smartAdminClassMapper::populateMap().
00265 { 00266 $path .= $map->filename; 00267 $map->classname = trim($map->classname); 00268 if (false !== strpos($map->classname, '..')) { 00269 var_dump($map); 00270 die(T_('Class mapping includes illegal "..".')); 00271 } 00272 if (!isset($this->dynamap[$map->classname])) $this->dynamap[$map->classname] = $path; 00273 else trigger_error (sprintf('Class %s defined in %s but already defined in %s',$map->classname, $path, $this->dynamap[$map->classname])); 00274 }
smartClassMapper::$instance = __CLASS__ [static, private] |
smartClassMapper::$dynamap = array() [protected] |
Definition at line 86 of file classloader.php.
smartClassMapper::$debug_log = array() [protected] |
Definition at line 87 of file classloader.php.
smartClassMapper::$timer = null [protected] |
Definition at line 88 of file classloader.php.
smartClassMapper::$populating = false [protected] |
Definition at line 89 of file classloader.php.
smartClassMapper::$classmap [protected] |
Definition at line 91 of file classloader.php.
smartClassMapper::$extmap [protected] |
Initial value:
array(
'ArchieHTTP' => 'ArchieHTTP',
'UniversalFeedCreator' => 'feedcreator.class',
'htmlMimeMail5' => 'htmlMimeMail5',
'Mail_MIMEPart' => 'mimePart',
'Mail_RFC822' => 'RFC822',
'smpt' => 'smtp',
'HTMLPurifier' => 'HTMLPurifier',
'HTMLPurifier_Config' => 'HTMLPurifier',
'vCard' => 'vCard',
'PclZip' => 'pclzip.lib',
'Archive_Tar' => 'Tar',
'PEAR' => 'PEAR',
'HTMLPurifier_AttrTransform_ScriptRequired' => 'HTMLPurifier/HTMLPurifier_Script_Extension',
'HTMLPurifier_HTMLModule_Scripting' => 'HTMLPurifier/HTMLPurifier_Script_Extension',
'charsetmapping' => 'ConvertTables/charsetmapping',
'PHPGettextFile' => 'phpgettext/phpgettext.file',
'PHPGettextFilePOT' => 'phpgettext/phpgettext.file.pot',
'PHPGettextFilePO' => 'phpgettext/phpgettext.file.po',
'PHPGettextFileGLO' => 'phpgettext/phpgettext.file.glo',
'PHPGettextFileMO' => 'phpgettext/phpgettext.file.mo',
'PHPGettext' => 'phpgettext/phpgettext.class',
'PHPGettextAdmin' => 'phpgettext/phpgettext.admin',
'PHPGettext_Message' => 'phpgettext/phpgettext.message',
'aliroUnaccent' => 'aliroUnaccent',
'ConvertCharset' => 'ConvertCharset',
'zipfile' => 'zipfile'
)
Definition at line 149 of file classloader.php.
1.5.5