
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 81 of file classloader.php.
| smartClassMapper::__construct | ( | ) | [protected] |
Definition at line 177 of file classloader.php.
00177 { 00178 $this->timer = new aliroProfiler('Time so far'); 00179 }
| static smartClassMapper::getInstance | ( | ) | [static] |
Reimplemented in smartAdminClassMapper.
Definition at line 181 of file classloader.php.
Referenced by aliro::classExists(), aliroExtensionInstaller::handleClasses(), aliro::requireClass(), and aliro::startup().
00181 { 00182 if (!is_object(self::$instance)) { 00183 self::$instance = parent::getCachedSingleton(self::$instance); 00184 self::$instance->reset(); 00185 } 00186 self::$instance->checkDynamic(); 00187 return self::$instance; 00188 }
| smartClassMapper::checkDynamic | ( | ) | [protected] |
Definition at line 190 of file classloader.php.
References cachedSingleton::cacheNow(), aliro::getInstance(), and populateMap().
00190 { 00191 if (aliro::getInstance()->installed AND 0 == count($this->dynamap) AND !$this->populating) { 00192 $this->populating = true; 00193 $this->populateMap(); 00194 $this->populating = false; 00195 $this->cacheNow(); 00196 } 00197 }
| smartClassMapper::reset | ( | ) |
| smartClassMapper::clearCache | ( | ) |
Definition at line 203 of file classloader.php.
References populateMap().
00203 { 00204 $this->dynamap = array(); 00205 $this->populateMap(); 00206 parent::clearCache(); 00207 }
| smartClassMapper::__print | ( | ) |
Definition at line 209 of file classloader.php.
References T_().
00209 { 00210 return sprintf(T_('SmartClassMapper, %s dynamic items, % logs'), count($this->dynamap), count($this->debug_log)); 00211 }
| smartClassMapper::populateMap | ( | ) | [protected] |
Reimplemented in smartAdminClassMapper.
Definition at line 213 of file classloader.php.
References aliroCoreDatabase::getInstance(), and saveMap().
Referenced by checkDynamic(), and clearCache().
00213 { 00214 $database = aliroCoreDatabase::getInstance(); 00215 $database->setQuery('SELECT * FROM #__classmap WHERE side != "admin"'); 00216 $maps = $database->loadObjectList(); 00217 if ($maps) foreach ($maps as $map) { 00218 switch ($map->type) { 00219 case 'component': 00220 $path = 'components/'.$map->formalname.'/'; 00221 break; 00222 case 'module': 00223 $path = 'modules/'.$map->formalname.'/'; 00224 break; 00225 case 'mambot': 00226 $path = 'mambots/'.$map->formalname.'/'; 00227 break; 00228 case 'template': 00229 $path = 'templates/'.$map->formalname.'/'; 00230 break; 00231 default: continue; 00232 } 00233 $this->saveMap($path, $map); 00234 } 00235 }
| smartClassMapper::timeSoFar | ( | ) |
| smartClassMapper::getClassPath | ( | $ | classname | ) | [protected] |
Reimplemented in smartAdminClassMapper.
Definition at line 241 of file classloader.php.
References criticalInfo::getInstance(), aliroDebug::getInstance(), T_(), and timeSoFar().
Referenced by classExists(), and requireClass().
00241 { 00242 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())); 00243 $base = criticalInfo::getInstance()->class_base.'/'; 00244 if (isset($this->dynamap[$classname])) return $base.$this->dynamap[$classname].'.php'; 00245 if (isset($this->classmap[$classname])) return $base.'classes/'.$this->classmap[$classname].'.php'; 00246 if (isset($this->extmap[$classname])) return $base.'extclasses/'.$this->extmap[$classname].'.php'; 00247 if (file_exists($base.'classes/'.$classname.'.php')) return $base.'classes/'.$classname.'.php'; 00248 return ''; 00249 }
| smartClassMapper::requireClass | ( | $ | classname | ) |
Definition at line 251 of file classloader.php.
References getClassPath().
00251 { 00252 $path = $this->getClassPath($classname); 00253 if ($path AND file_exists($path)) require_once($path); 00254 else { 00255 $message = sprintf('Class %s not found, trying with path = %s', $classname, $path); 00256 trigger_error($message); 00257 } 00258 }
| smartClassMapper::classExists | ( | $ | classname | ) |
Definition at line 260 of file classloader.php.
References getClassPath().
00260 { 00261 return $this->getClassPath($classname) ? true : false; 00262 }
| smartClassMapper::saveMap | ( | $ | path, | |
| $ | map | |||
| ) | [protected] |
Definition at line 264 of file classloader.php.
References T_().
Referenced by populateMap(), and smartAdminClassMapper::populateMap().
00264 { 00265 $path .= $map->filename; 00266 $map->classname = trim($map->classname); 00267 if (false !== strpos($map->classname, '..')) { 00268 var_dump($map); 00269 die(T_('Class mapping includes illegal "..".')); 00270 } 00271 if (!isset($this->dynamap[$map->classname])) $this->dynamap[$map->classname] = $path; 00272 else trigger_error (sprintf('Class %s defined in %s but already defined in %s',$map->classname, $path, $this->dynamap[$map->classname])); 00273 }
smartClassMapper::$instance = __CLASS__ [static, private] |
smartClassMapper::$dynamap = array() [protected] |
Definition at line 85 of file classloader.php.
smartClassMapper::$debug_log = array() [protected] |
Definition at line 86 of file classloader.php.
smartClassMapper::$timer = null [protected] |
Definition at line 87 of file classloader.php.
smartClassMapper::$populating = false [protected] |
Definition at line 88 of file classloader.php.
smartClassMapper::$classmap [protected] |
Definition at line 90 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 148 of file classloader.php.
1.5.5