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 82 of file classloader.php.


Constructor & Destructor Documentation

smartClassMapper::__construct (  )  [protected]

Definition at line 178 of file classloader.php.

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


Member Function Documentation

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

Definition at line 200 of file classloader.php.

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

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

Definition at line 238 of file classloader.php.

Referenced by getClassPath().

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

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     }


Member Data Documentation

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

Reimplemented in smartAdminClassMapper.

Definition at line 84 of file classloader.php.

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.


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

Generated on Wed May 14 13:02:04 2008 for ALIRO by  doxygen 1.5.5