smartClassMapper Class Reference

Inheritance diagram for smartClassMapper:

cachedSingleton smartAdminClassMapper

List of all members.

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__


Detailed Description

Definition at line 81 of file classloader.php.


Constructor & Destructor Documentation

smartClassMapper::__construct (  )  [protected]

Definition at line 177 of file classloader.php.

00177                                       {
00178         $this->timer = new aliroProfiler('Time so far');
00179     }


Member Function Documentation

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 (  ) 

Definition at line 199 of file classloader.php.

00199                              {
00200         $this->timer->reset();
00201     }

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 (  ) 

Definition at line 237 of file classloader.php.

Referenced by getClassPath().

00237                                  {
00238         return $this->timer->mark('seconds');
00239     }

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     }


Member Data Documentation

smartClassMapper::$instance = __CLASS__ [static, private]

Reimplemented in smartAdminClassMapper.

Definition at line 83 of file classloader.php.

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.


The documentation for this class was generated from the following file:

Generated on Thu Apr 17 13:03:35 2008 for ALIRO by  doxygen 1.5.5