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-2011 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.         $file jApp::tempPath();
  37.         if(BYTECODE_CACHE_EXISTS)
  38.             $file .= str_replace('/','~',$configFile).'.conf.php';
  39.         else
  40.             $file .= str_replace('/','~',$configFile).'.resultini.php';
  41.         $compil=false;
  42.         if(!file_exists($file)){
  43.             // no cache, let's compile
  44.             $compil=true;
  45.         }else{
  46.             $t filemtime($file);
  47.             $dc jApp::configPath('defaultconfig.ini.php');
  48.             if( (file_exists($dc&& filemtime($dc)>$t)
  49.                 || filemtime(jApp::configPath($configFile))>$t){
  50.                 // one of the two config file have been modified: let's compile
  51.                 $compil=true;
  52.             }else{
  53.  
  54.                 // let's read the cache file
  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.                 // we check all directories to see if it has been modified
  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_once(JELIX_LIB_CORE_PATH.'jConfigCompiler.class.php');
  75.             return jConfigCompiler::readAndCache($configFile);
  76.         }else
  77.             return $config;
  78.     }
  79. }

Documentation generated on Wed, 24 Sep 2014 21:56:44 +0200 by phpDocumentor 1.4.3