Esempio n. 1
0
 /** 
  * retourne vrai ou faux selon que le cache est rescent
  * @access public
  * @param string $sId
  * @param int $iMinute
  * @return bool
  */
 public function isCached($sId, $iMinute = null)
 {
     $oFile = new _file(_root::getConfigVar('path.cache') . $sId . '.cache');
     if ($oFile->exist()) {
         if ($iMinute == null) {
             return true;
         } else {
             if (time() - $oFile->filemtime() < $iMinute * 60) {
                 return true;
             }
         }
         return false;
     }
     return false;
 }
Esempio n. 2
0
 /** 
  * lance le framework (dispatch...)
  * @access public	
  */
 public function run()
 {
     try {
         self::loadConf();
         self::loadAutoload();
         self::loadRequest();
         //parametrage du niveau d'erreur
         if (self::getConfigVar('site.mode') == 'dev') {
             error_reporting(E_ALL);
         } else {
             error_reporting(0);
         }
         self::getLog()->setInformation((int) self::getConfigVar('log.information'));
         self::getLog()->setWarning((int) self::getConfigVar('log.warning'));
         self::getLog()->setError((int) self::getConfigVar('log.error'));
         self::getLog()->setApplication((int) self::getConfigVar('log.application'));
         date_default_timezone_set(self::getConfigVar('site.timezone'));
         //auth
         if ((int) self::getConfigVar('auth.enabled') == 1) {
             self::getAuth()->enable();
         }
         //desactivation des magic quotes
         if (get_magic_quotes_gpc()) {
             $_POST = array_map('stripslashes_deep', $_POST);
             $_GET = array_map('stripslashes_deep', $_GET);
             $_COOKIE = array_map('stripslashes_deep', $_COOKIE);
             $this->getRequest()->magic_quote();
         }
         if ((int) self::getConfigVar('urlrewriting.enabled') == 1) {
             self::getUrlRewriting()->parseUrl($_SERVER['REQUEST_URI']);
         }
         $sModuleToLoad = self::getRequest()->getModule();
         $sModuleActionToLoad = self::getRequest()->getAction();
         /*LOG*/
         self::getLog()->info('module a appeler [' . $sModuleToLoad . '::' . $sModuleActionToLoad . ']');
         //chargement module/action
         $sClassModule = 'module_' . $sModuleToLoad;
         $oModule = new $sClassModule();
         if (method_exists($oModule, '_' . $sModuleActionToLoad)) {
             /*LOG*/
             self::getLog()->info('appel module [' . $sModuleToLoad . '::before]');
             $oModule->before();
             //pre action
             if (method_exists($oModule, 'before_' . $sModuleActionToLoad)) {
                 /*LOG*/
                 self::getLog()->info('appel module [' . $sModuleToLoad . '::before_' . $sModuleActionToLoad . ']');
                 $sActionBefore = 'before_' . $sModuleActionToLoad;
                 $oModule->{$sActionBefore}();
             }
             //debut cache
             if ((int) self::getConfigVar('cache.enabled') == 1) {
                 $sNomPageCache = 'cache_' . str_replace('::', '_', implode('_', self::getRequest()->getParams())) . '.html';
                 $oFichierCache = new _file(self::getConfigVar('path.cache') . $sNomPageCache);
                 if ($oFichierCache->exist() and (int) self::getConfigVar('cache.lifetime') == 0 or $oFichierCache->exist() and time() - $oFichierCache->filemtime() < (int) self::getConfigVar('cache.lifetime')) {
                     /*LOG*/
                     self::getLog()->info('utilisation page en cache [' . $sNomPageCache . ']');
                     echo $oFichierCache->getContent();
                     return;
                 }
                 ob_start();
             }
             $sAction = '_' . $sModuleActionToLoad;
             /*LOG*/
             self::getLog()->info('appel module [' . $sModuleToLoad . '::' . $sAction . ']');
             $oModule->{$sAction}();
             //post action
             if (method_exists($oModule, 'after_' . $sModuleActionToLoad)) {
                 /*LOG*/
                 self::getLog()->info('appel module [' . $sModuleToLoad . '::after_' . $sModuleActionToLoad . ']');
                 $sActionAfter = 'after_' . $sModuleActionToLoad;
                 $oModule->{$sActionAfter}();
             }
             //post module
             /*LOG*/
             self::getLog()->info('appel module [' . $sModuleToLoad . '::after]');
             $oModule->after();
             //fin cache
             if ((int) self::getConfigVar('cache.enabled') == 1) {
                 $sSortie = ob_get_contents();
                 ob_end_clean();
                 $oFichierCache->write($sSortie . "\n<!--cache -->");
                 echo $sSortie;
             }
         } else {
             $tErreur = array('Erreur dans module/' . $sModuleToLoad . '/main.php', 'Pas de m&eacute;thode _' . $sModuleActionToLoad . '() dans le module "' . $sModuleToLoad . '" &agrave; charger', 'Note: vous pouvez modifier le couple module/action par defaut ', 'en modifiant la section [navigation] dans le fichier conf/site.ini.php');
             throw new Exception(implode("\n", $tErreur));
         }
     } catch (Exception $e) {
         self::erreurLog($e->getMessage() . "\n" . self::showException($e), $e);
     }
 }