Source for file jConfig.class.php

Documentation is available at jConfig.class.php

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

Documentation generated on Thu, 19 Sep 2013 00:02:37 +0200 by phpDocumentor 1.4.3