Source for file jConfig.class.php

Documentation is available at jConfig.class.php

  1. <?php
  2. /**
  3. @package  jelix
  4. @subpackage core
  5. @author   Jouanneau Laurent
  6. @contributor
  7. @copyright 2005-2007 Jouanneau laurent
  8. @link        http://www.jelix.org
  9. @licence  GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  10. */
  11.  
  12. /**
  13.  * static class which loads the configuration
  14.  * @package  jelix
  15.  * @subpackage core
  16.  * @static
  17.  */
  18. class jConfig {
  19.  
  20.     /**
  21.      * this is a static class, so private constructor
  22.      */
  23.     private function __construct ()}
  24.  
  25.     /**
  26.      * load and read the configuration of the application
  27.      * The combination of all configuration files (the given file
  28.      * and the defaultconfig.ini.php) is stored
  29.      * in a single temporary file. So it calls the jConfigCompiler
  30.      * class if needed
  31.      * @param string $configFile the config file name
  32.      * @return object it contains all configuration options
  33.      * @see jConfigCompiler
  34.      */
  35.     static public function load($configFile){
  36.         $config=array();
  37.         if(BYTECODE_CACHE_EXISTS)
  38.             $file JELIX_APP_TEMP_PATH.str_replace('/','~',$configFile).'.conf.php';
  39.         else
  40.             $file JELIX_APP_TEMP_PATH.str_replace('/','~',$configFile).'.resultini.php';
  41.         $compil=false;
  42.         if(!file_exists($file)){
  43.             // pas de cache, on compile
  44.             $compil=true;
  45.         }else{
  46.             $t filemtime($file);
  47.             $dc JELIX_APP_CONFIG_PATH.'defaultconfig.ini.php';
  48.             if( (file_exists($dc&& filemtime($dc)>$t)
  49.                 || filemtime(JELIX_APP_CONFIG_PATH.$configFile)>$t){
  50.                 // le fichier de conf ou le fichier defaultconfig.ini.php ont ete modifié : on compile
  51.                 $compil=true;
  52.             }else{
  53.  
  54.                 // on lit le fichier de conf du cache
  55.                 if(BYTECODE_CACHE_EXISTS){
  56.                     include($file);
  57.                     $config = (object) $config;
  58.                 }else{
  59.                     $config parse_ini_file($file,true);
  60.                     $config = (object) $config;
  61.                 }
  62.                 // on va verifier tous les chemins
  63.                 if($config->compilation['checkCacheFiletime']){
  64.                     foreach($config->_allBasePath as $path){
  65.                         if(!file_exists($path|| filemtime($path)>$t){
  66.                             $compil true;
  67.                             break;
  68.                         }
  69.                     }
  70.                 }
  71.             }
  72.         }
  73.         if($compil){
  74.             require(JELIX_LIB_CORE_PATH.'jConfigCompiler.class.php');
  75.             return jConfigCompiler::read($configFile);
  76.         }else
  77.             return $config;
  78.     }
  79. }

Documentation generated on Thu, 22 Mar 2012 22:14:11 +0100 by phpDocumentor 1.4.3