Source for file init.php

Documentation is available at init.php

  1. <?php
  2. /**
  3. * Initialize all defines and includes necessary files
  4. *
  5. @package  jelix
  6. @subpackage core
  7. @author   Jouanneau Laurent
  8. @contributor Loic Mathaud, Julien Issler
  9. @copyright 2005-2007 Jouanneau laurent
  10. @copyright 2007 Julien Issler
  11. @link     http://www.jelix.org
  12. @licence  GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  13. */
  14.  
  15.  
  16. /**
  17.  * Version number of Jelix
  18.  * @name  JELIX_VERSION
  19.  */
  20. define ('JELIX_VERSION''1.0.14');
  21.  
  22. /**
  23.  * base of namespace path used in xml files of jelix
  24.  * @name  JELIX_NAMESPACE_BASE
  25.  */
  26. define ('JELIX_NAMESPACE_BASE' 'http://jelix.org/ns/');
  27.  
  28. define ('JELIX_LIB_PATH',         dirname (__FILE__).'/');
  29. define ('JELIX_LIB_CORE_PATH',    JELIX_LIB_PATH.'core/');
  30. define ('JELIX_LIB_UTILS_PATH',   JELIX_LIB_PATH.'utils/');
  31. define ('JELIX_LIB_AUTH_PATH',    JELIX_LIB_PATH.'auth/');
  32. define ('JELIX_LIB_DB_PATH',      JELIX_LIB_PATH.'db/');
  33. define ('JELIX_LIB_ACL_PATH',     JELIX_LIB_PATH.'acl/');
  34. define ('JELIX_LIB_DAO_PATH',     JELIX_LIB_PATH.'dao/');
  35. define ('JELIX_LIB_EVENTS_PATH',  JELIX_LIB_PATH.'events/');
  36. define ('JELIX_LIB_FORMS_PATH',   JELIX_LIB_PATH.'forms/');
  37. define ('JELIX_LIB_REQUEST_PATH'JELIX_LIB_PATH.'core/request/');
  38. define ('JELIX_LIB_RESPONSE_PATH',JELIX_LIB_PATH.'core/response/');
  39. define ('JELIX_LIB_TPL_PATH',     JELIX_LIB_PATH.'tpl/');
  40. define ('JELIX_LIB_CTRL_PATH',    JELIX_LIB_PATH.'controllers/');
  41.  
  42. // all path of libs
  43. define ('LIB_PATH',           realpath(dirname (__FILE__).'/../').'/');
  44. define ('JELIX_PLUGINS_PATH'LIB_PATH.'jelix-plugins/');
  45. define ('JELIX_MODULE_PATH',  LIB_PATH.'jelix-modules/');
  46.  
  47. define ('BYTECODE_CACHE_EXISTS'function_exists('apc_cache_info')|| function_exists('eaccelerator_info'));
  48.  
  49. if(!defined('E_DEPRECATED'))
  50.     define ('E_DEPRECATED',8192);
  51. error_reporting (E_ALL E_STRICT);
  52.  
  53.  
  54. // chargement du coeur
  55. require (JELIX_LIB_CORE_PATH 'jErrorHandler.lib.php');
  56. require (JELIX_LIB_CORE_PATH 'jException.lib.php');
  57. require (JELIX_LIB_CORE_PATH 'jContext.class.php');
  58. require (JELIX_LIB_CORE_PATH 'jConfig.class.php');
  59. require (JELIX_LIB_CORE_PATH 'jSelector.class.php');
  60. require (JELIX_LIB_CORE_PATH 'jUrl.class.php');
  61. require (JELIX_LIB_CORE_PATH 'jCoordinator.class.php');
  62. require (JELIX_LIB_CORE_PATH 'jController.class.php');
  63. require (JELIX_LIB_CORE_PATH 'jRequest.class.php');
  64. require (JELIX_LIB_CORE_PATH 'jResponse.class.php');
  65. require (JELIX_LIB_CORE_PATH 'jLocale.class.php');
  66. require (JELIX_LIB_CORE_PATH 'jIncluder.class.php');
  67. require (JELIX_LIB_CORE_PATH 'jSession.class.php');
  68. require (JELIX_LIB_CORE_PATH 'jICoordPlugin.iface.php');
  69.  
  70. /**
  71.  * The main object of Jelix which process all things
  72.  * @global jCoordinator $gJCoord 
  73.  * @name $gJCoord
  74.  */
  75. $gJCoord null;
  76.  
  77. /**
  78.  * Object that contains all configuration values
  79.  * @global stdobject $gJConfig 
  80.  * @name $gJConfig
  81.  */
  82. $gJConfig null;
  83.  
  84. /**
  85.  * contains path for __autoload function
  86.  * @global array $gLibPath 
  87.  * @name $gLibPath
  88.  * @see __autoload()
  89.  */
  90. $gLibPath=array('Db'=>JELIX_LIB_DB_PATH'Dao'=>JELIX_LIB_DAO_PATH,
  91.  'Forms'=>JELIX_LIB_FORMS_PATH'Event'=>JELIX_LIB_EVENTS_PATH,
  92.  'Tpl'=>JELIX_LIB_TPL_PATH'Acl'=>JELIX_LIB_ACL_PATH'Controller'=>JELIX_LIB_CTRL_PATH,
  93.  'Auth'=>JELIX_LIB_AUTH_PATH);
  94.  
  95. /**
  96.  * __autoload function used by php to try to load an unknown class
  97.  */
  98. function __autoload($class){
  99.     if(preg_match('/^j(Dao|Tpl|Acl|Event|Db|Controller|Forms|Auth).*$/'$class$m)){
  100.         $f=$GLOBALS['gLibPath'][$m[1]].$class.'.class.php';
  101.     }elseif(preg_match('/^cDao(?:Record)?_(.+)_Jx_(.+)_Jx_(.+)$/'$class$m)){
  102.         // pour les dao stockés en sessions notament
  103.         $s new jSelectorDao($m[1].'~'.$m[2]$m[3]false);
  104.         if($GLOBALS['gJConfig']->compilation['checkCacheFiletime']){
  105.             // si il faut verifier le filetime, alors on inclus via le jIncluder
  106.             // au cas où il faudrait recompiler le dao avant l'inclusion de la classe
  107.             jIncluder::inc($s);
  108.             return;
  109.         }else{
  110.             $f $s->getCompiledFilePath ();
  111.             // on verifie que le fichier est là (dans le cas d'un temp purgé, cf bug #6062)
  112.             if(!file_exists($f))// si absent, on recompile
  113.                 jIncluder::inc($s);
  114.                 return;
  115.             }
  116.         }
  117.     }else{
  118.         $f JELIX_LIB_UTILS_PATH.$class.'.class.php';
  119.     }
  120.  
  121.     if(file_exists($f)){
  122.         require_once($f);
  123.     }else{
  124.         throw new Exception("Jelix fatal error : Unknown class $class");
  125.     }
  126. }
  127.  
  128. ?>

Documentation generated on Wed, 07 Sep 2011 13:46:38 +0200 by phpDocumentor 1.4.3