Exemplo n.º 1
0
 private function loadAutoload()
 {
     if ((int) self::getConfigVar('cache.autoload.enabled') == 1) {
         $sCacheFilename = self::getConfigVar('path.cache') . 'autoload.php';
         if (file_exists($sCacheFilename)) {
             include $sCacheFilename;
         } else {
             //on creer un tableau associatif de tous les path des classes
             $tDir = array('lib' => self::getConfigVar('path.lib'), 'abstract' => self::getConfigVar('path.lib') . 'abstract/', 'sgbd' => self::getConfigVar('path.lib') . 'sgbd/', 'sgbd_pdo' => self::getConfigVar('path.lib') . 'sgbd/pdo/', 'sgbd_syntax' => self::getConfigVar('path.lib') . 'sgbd/syntax/', 'plugin' => self::getConfigVar('path.plugin'), 'model' => self::getConfigVar('path.model'), 'module' => self::getConfigVar('path.module'));
             $tAutoload = array();
             foreach ($tDir as $sType => $sDir) {
                 if (in_array($sType, array('lib', 'abstract', 'sgbd', 'sgbd_pdo', 'sgbd_syntax', 'plugin', 'model'))) {
                     $oDir = new _dir($sDir);
                     $tFile = $oDir->getListFile();
                     foreach ($tFile as $oFile) {
                         $sFilename = $oFile->getName();
                         $tFilename = preg_split('/_/', $sFilename);
                         if ($sType == 'lib') {
                             $tAutoload['_' . substr($tFilename[1], 0, -4)] = $sDir . $sFilename;
                         } else {
                             $tAutoload[substr($sFilename, 0, -4)] = $sDir . $sFilename;
                         }
                     }
                 } else {
                     if ($sType == 'module') {
                         $oDir = new _dir($sDir);
                         $tModuleDir = $oDir->getListDir();
                         foreach ($tModuleDir as $oModuleDir) {
                             $sModuleDirname = $oModuleDir->getName();
                             $tAutoload['module_' . $sModuleDirname] = $sDir . $sModuleDirname . '/main.php';
                         }
                     }
                 }
             }
             $sCodeCache = '<?php _root::$tAutoload=' . var_export($tAutoload, true) . ';';
             file_put_contents($sCacheFilename, $sCodeCache);
             self::$tAutoload = $tAutoload;
         }
     }
 }