Changeset 3157
- Timestamp:
- 08/20/08 16:50:08 (3 months ago)
- Files:
-
- branches/Copix_3_0_X/utils/copix/copix.inc.php (modified) (5 diffs)
- trunk/utils/copix/copix.inc.php (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/Copix_3_0_X/utils/copix/copix.inc.php
r2763 r3157 1 1 <?php 2 2 /** 3 * @packagecopix4 * @authorCroes Gérald, Jouanneau Laurent5 * @copyright CopixTeam6 * @linkhttp://copix.org7 * @licensehttp://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file8 */3 * @package copix 4 * @author Croes Gérald, Jouanneau Laurent 5 * @copyright CopixTeam 6 * @link http://copix.org 7 * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file 8 */ 9 9 10 10 /** 11 11 * Classe de base pour toutes les exceptions qui seront levées par Copix et les services Copix 12 * 12 13 * @package copix 13 * @subpackage core14 * @subpackage core 14 15 */ 15 16 class CopixException extends Exception { 16 /** 17 * Utilise le système de log pour tracer les exceptions 18 * @param string $pMsg le message d'erreur qui viens avec l'exception 19 */ 20 function __construct ($pMsg, $pCode = 0){ 21 parent::__construct ($pMsg, $pCode); 22 } 17 /** 18 * Informations supplémentaires 19 * 20 * @var array 21 */ 22 private $_extras = array (); 23 24 /** 25 * Constructeur 26 * 27 * @param string $pMsg Texte du message d'erreur 28 * @param int $pCode Code du message 29 * @param array $pExtras Informations supplémentaires 30 */ 31 public function __construct ($pMsg, $pCode = 0, $pExtras = array ()) { 32 parent::__construct ($pMsg, $pCode); 33 $this->_extras = $pExtras; 34 } 35 36 /** 37 * Retourne les informations supplémentaires 38 * 39 * @return array 40 */ 41 public function getExtras () { 42 return $this->_extras; 43 } 44 45 /** 46 * Retourne une information particulière, ou null si elle n'existe pas 47 * 48 * @param string $pName Nom de l'information 49 * @return mixed 50 */ 51 public function getExtra ($pName) { 52 return (array_key_exists ($pName, $this->_extras)) ? $this->_extras[$pName] : null; 53 } 23 54 } 24 55 25 56 /** 26 * Interface d'un gestionnaire d'erreur .57 * Interface d'un gestionnaire d'erreur 27 58 * 59 * @package copix 60 * @subpackage core 28 61 */ 29 62 interface ICopixErrorHandler { 63 /** 64 * Indique au gestionnaire d'erreur qu'il peut gérer les E_STRICT 65 */ 66 public function processStricts (); 30 67 31 68 /** 32 * Indique au gestionnaire d'erreur qu'il peut gérer les E_STRICT. 69 * Reçoit une erreur 70 * 71 * @param integer $pErrNo Code d'erreur 72 * @param string $pErrMsg Message d'erreur 73 * @param string $pFilename Nom du fichier ayant provoqué l'erreur 74 * @param integer $pLinenum Ligne du fichier ayant provoquée l'erreur 75 * @param array $pVars Variables locales 33 76 */ 34 public function processStricts(); 35 36 /** 37 * Reçoit une erreur. 38 * 39 * @param integer $pErrNo Code d'erreur. 40 * @param string $pErrMsg Message d'erreur. 41 * @param string $pFilename Nom du fichier ayant provoqué l'erreur. 42 * @param integer $pLinenum Ligne du fichier ayant provoquée l'erreur. 43 * @param array $pVars Variables locales. 44 */ 45 public function handle($pErrNo, $pErrMsg, $pFilename, $pLinenum, $pVars); 46 77 public function handle ($pErrNo, $pErrMsg, $pFilename, $pLinenum, $pVars); 47 78 } 48 79 49 80 /** 50 81 * Classe utilitaire qui permet l'inclusion des fichiers et bibliothéques Copix 82 * 51 83 * @package copix 52 * @subpackage core84 * @subpackage core 53 85 */ 54 86 class Copix { 87 /** 88 * Fichiers déjà inclus 89 * 90 * @var array 91 */ 92 private static $_included = array (); 55 93 56 94 /** 57 * Fichiers déjà inclus 58 * @var array 59 */ 60 static private $_included = array (); 61 62 /** 63 * Gestionnaire d'erreur en cours. 95 * Gestionnaire d'erreur en cours 64 96 * 65 97 * @var ICopixErrorHandler 66 98 */ 67 static private$_errorHandler = null;99 private static $_errorHandler = null; 68 100 69 101 /** 70 102 * Met en place un nouveau gestionnaire d'erreur. 71 103 * 72 * @param ICopixErrorHandler $pErrorHandler Nouveau gestionnaire d'erreur .104 * @param ICopixErrorHandler $pErrorHandler Nouveau gestionnaire d'erreur 73 105 */ 74 static public function setErrorHandler(ICopixErrorHandler $pErrorHandler) {106 public static function setErrorHandler (ICopixErrorHandler $pErrorHandler) { 75 107 self::$_errorHandler = $pErrorHandler; 76 set_error_handler (array($pErrorHandler, 'handle'));108 set_error_handler (array ($pErrorHandler, 'handle')); 77 109 } 78 110 79 111 /** 80 * Inclusion unique d'un fichier 81 * @param string $pPath le chemin du fichier que l'on souhaites inclure. 82 * @return boolean le fichier est ou non connu 112 * Inclusion unique d'un fichier, et indique si il a été inclu ou non 113 * 114 * @param string $pPath Chemin du fichier que l'on souhaites inclure 115 * @return boolean 83 116 */ 84 public static function RequireOnce ($pPath) {85 $path = strtolower ($pPath);86 if (! isset (self::$_included[$path])){117 public static function RequireOnce ($pPath) { 118 $path = strtolower ($pPath); 119 if (!isset (self::$_included[$path])) { 87 120 if (file_exists ($pPath)) { 88 121 self::$_included[$path] = true; 89 self::$_included[$path] = include_once ($pPath);90 if (self::$_errorHandler !== null) {91 self::$_errorHandler->processStricts ();122 self::$_included[$path] = include_once ($pPath); 123 if (self::$_errorHandler !== null) { 124 self::$_errorHandler->processStricts (); 92 125 } 93 126 } else { … … 95 128 } 96 129 } 97 return self::$_included[$path];130 return self::$_included[$path]; 98 131 } 99 132 100 133 /** 101 134 * Inclusion de librairies Copix 102 * @param string $pClassName le nom de la classe que l'on souhaites inclure 103 * @return boolean le fichier est ou non connu 135 * 136 * @param string $pClassName le nom de la classe que l'on souhaites inclure 137 * @return boolean 104 138 * @see CopixAutoloader 105 139 * @todo Zone, Services, HTMLHeader, Cache, ClassesFactory, I18N, EventNotifier, Db, DBQueryParam, DAOFactory, Auth, User, Log 106 140 */ 107 public static function RequireClass ($pClassName) {141 public static function RequireClass ($pClassName) { 108 142 // Tente d'abord de déclencher un autoloading 109 if (!class_exists($pClassName, true)) {143 if (!class_exists ($pClassName, true)) { 110 144 // Essaie quand même de charger la classe 111 145 // au cas où CopixAutoloader ne soit plus enregistré comme autoloader 112 if (!CopixAutoloader::getInstance()->load($pClassName)) {113 throw new Exception ("Class $pClassName not found");146 if (!CopixAutoloader::getInstance ()->load ($pClassName)) { 147 throw new Exception ("Class $pClassName not found"); 114 148 } 115 149 } … … 119 153 //Définition de constantes. 120 154 define ('COPIX_VERSION_MAJOR', 3); 121 define ('COPIX_VERSION_MINOR', 1);122 define ('COPIX_VERSION_FIX', 0);155 define ('COPIX_VERSION_MINOR', 0); 156 define ('COPIX_VERSION_FIX', 5); 123 157 124 158 define ('COPIX_VERSION_RC', null); 125 159 define ('COPIX_VERSION_BETA', null); 126 160 define ('COPIX_VERSION_DEV', true); 127 128 161 129 162 $copixVersion = COPIX_VERSION_MAJOR . '.' . COPIX_VERSION_MINOR . '.' . COPIX_VERSION_FIX; … … 143 176 define ('COPIX_UTILS_PATH', COPIX_PATH.'utils/'); 144 177 145 define ('COPIX_ACTIONGROUP_DIR' , 'actiongroups/');146 define ('COPIX_DESC_DIR' , 'desc/');147 define ('COPIX_ZONES_DIR' , 'zones/');178 define ('COPIX_ACTIONGROUP_DIR', 'actiongroups/'); 179 define ('COPIX_DESC_DIR', 'desc/'); 180 define ('COPIX_ZONES_DIR', 'zones/'); 148 181 define ('COPIX_TEMPLATES_DIR', 'templates/'); 149 define ('COPIX_CLASSES_DIR' , 'classes/');182 define ('COPIX_CLASSES_DIR', 'classes/'); 150 183 define ('COPIX_RESOURCES_DIR', 'resources/'); 151 define ('COPIX_PLUGINS_DIR' , 'plugins/');184 define ('COPIX_PLUGINS_DIR', 'plugins/'); 152 185 define ('COPIX_INSTALL_DIR', 'install/'); 153 186 define ('COPIX_SMARTY_PATH', COPIX_PATH.'../smarty/'); … … 159 192 160 193 Copix::RequireOnce (COPIX_CORE_PATH . 'CopixAutoloader.class.php'); 161 162 194 Copix::RequireOnce (COPIX_CORE_PATH . 'shortcuts.lib.php'); 163 //Copix::RequireOnce (COPIX_CORE_PATH . 'CopixErrorHandler.class.php');164 /* N'est plus nécessaire avec l'autoloader165 Copix::RequireOnce (COPIX_CORE_PATH . 'CopixRequest.class.php');166 Copix::RequireOnce (COPIX_CORE_PATH . 'CopixConfig.class.php');167 Copix::RequireOnce (COPIX_CORE_PATH . 'CopixAction.class.php');168 Copix::RequireOnce (COPIX_CORE_PATH . 'CopixController.class.php');169 Copix::RequireOnce (COPIX_CORE_PATH . 'CopixActionGroup.class.php');170 Copix::RequireOnce (COPIX_CORE_PATH . 'CopixUrl.class.php');171 Copix::RequireOnce (COPIX_CORE_PATH . 'CopixContext.class.php');172 */173 ?>trunk/utils/copix/copix.inc.php
r2115 r3157 1 1 <?php 2 2 /** 3 * @packagecopix4 * @authorCroes Gérald, Jouanneau Laurent5 * @copyright CopixTeam6 * @linkhttp://copix.org7 * @licensehttp://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file8 */3 * @package copix 4 * @author Croes Gérald, Jouanneau Laurent 5 * @copyright CopixTeam 6 * @link http://copix.org 7 * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file 8 */ 9 9 10 10 /** 11 11 * Classe de base pour toutes les exceptions qui seront levées par Copix et les services Copix 12 * 12 13 * @package copix 13 * @subpackage core14 * @subpackage core 14 15 */ 15 16 class CopixException extends Exception { 16 /** 17 * Utilise le système de log pour tracer les exceptions 18 * @param string $pMsg le message d'erreur qui viens avec l'exception 19 */ 20 function __construct ($pMsg, $pCode = 0){ 21 parent::__construct ($pMsg, $pCode); 22 } 17 /** 18 * Informations supplémentaires 19 * 20 * @var array 21 */ 22 private $_extras = array (); 23 24 /** 25 * Constructeur 26 * 27 * @param string $pMsg Texte du message d'erreur 28 * @param int $pCode Code du message 29 * @param array $pExtras Informations supplémentaires 30 */ 31 public function __construct ($pMsg, $pCode = 0, $pExtras = array ()) { 32 parent::__construct ($pMsg, $pCode); 33 $this->_extras = $pExtras; 34 } 35 36 /** 37 * Retourne les informations supplémentaires 38 * 39 * @return array 40 */ 41 public function getExtras () { 42 return $this->_extras; 43 } 44 45 /** 46 * Retourne une information particulière, ou null si elle n'existe pas 47 * 48 * @param string $pName Nom de l'information 49 * @return mixed 50 */ 51 public function getExtra ($pName) { 52 return (array_key_exists ($pName, $this->_extras)) ? $this->_extras[$pName] : null; 53 } 23 54 } 24 55 25 56 /** 26 * Interface d'un gestionnaire d'erreur .57 * Interface d'un gestionnaire d'erreur 27 58 * 59 * @package copix 60 * @subpackage core 28 61 */ 29 62 interface ICopixErrorHandler { 63 /** 64 * Indique au gestionnaire d'erreur qu'il peut gérer les E_STRICT 65 */ 66 public function processStricts (); 30 67 31 68 /** 32 * Indique au gestionnaire d'erreur qu'il peut gérer les E_STRICT. 69 * Reçoit une erreur 70 * 71 * @param integer $pErrNo Code d'erreur 72 * @param string $pErrMsg Message d'erreur 73 * @param string $pFilename Nom du fichier ayant provoqué l'erreur 74 * @param integer $pLinenum Ligne du fichier ayant provoquée l'erreur 75 * @param array $pVars Variables locales 33 76 */ 34 public function processStricts(); 35 36 /** 37 * Reçoit une erreur. 38 * 39 * @param integer $pErrNo Code d'erreur. 40 * @param string $pErrMsg Message d'erreur. 41 * @param string $pFilename Nom du fichier ayant provoqué l'erreur. 42 * @param integer $pLinenum Ligne du fichier ayant provoquée l'erreur. 43 * @param array $pVars Variables locales. 44 */ 45 public function handle($pErrNo, $pErrMsg, $pFilename, $pLinenum, $pVars); 46 77 public function handle ($pErrNo, $pErrMsg, $pFilename, $pLinenum, $pVars); 47 78 } 48 79 49 80 /** 50 81 * Classe utilitaire qui permet l'inclusion des fichiers et bibliothéques Copix 82 * 51 83 * @package copix 52 * @subpackage core84 * @subpackage core 53 85 */ 54 86 class Copix { 87 /** 88 * Fichiers déjà inclus 89 * 90 * @var array 91 */ 92 private static $_included = array (); 55 93 56 94 /** 57 * Fichiers déjà inclus 58 * @var array 59 */ 60 static private $_included = array (); 61 62 /** 63 * Gestionnaire d'erreur en cours. 95 * Gestionnaire d'erreur en cours 64 96 * 65 97 * @var ICopixErrorHandler 66 98 */ 67 static private$_errorHandler = null;99 private static $_errorHandler = null; 68 100 69 101 /** 70 102 * Met en place un nouveau gestionnaire d'erreur. 71 103 * 72 * @param ICopixErrorHandler $pErrorHandler Nouveau gestionnaire d'erreur .104 * @param ICopixErrorHandler $pErrorHandler Nouveau gestionnaire d'erreur 73 105 */ 74 static public function setErrorHandler(ICopixErrorHandler $pErrorHandler) {106 public static function setErrorHandler (ICopixErrorHandler $pErrorHandler) { 75 107 self::$_errorHandler = $pErrorHandler; 76 set_error_handler (array($pErrorHandler, 'handle'));108 set_error_handler (array ($pErrorHandler, 'handle')); 77 109 } 78 110 79 111 /** 80 * Inclusion unique d'un fichier 81 * @param string $pPath le chemin du fichier que l'on souhaites inclure. 82 * @return boolean le fichier est ou non connu 112 * Inclusion unique d'un fichier, et indique si il a été inclu ou non 113 * 114 * @param string $pPath Chemin du fichier que l'on souhaites inclure 115 * @return boolean 83 116 */ 84 public static function RequireOnce ($pPath) {85 $path = strtolower ($pPath);86 if (! isset (self::$_included[$path])){117 public static function RequireOnce ($pPath) { 118 $path = strtolower ($pPath); 119 if (!isset (self::$_included[$path])) { 87 120 if (file_exists ($pPath)) { 88 121 self::$_included[$path] = true; 89 self::$_included[$path] = include_once ($pPath);90 if (self::$_errorHandler !== null) {91 self::$_errorHandler->processStricts ();122 self::$_included[$path] = include_once ($pPath); 123 if (self::$_errorHandler !== null) { 124 self::$_errorHandler->processStricts (); 92 125 } 93 126 } else { … … 95 128 } 96 129 } 97 return self::$_included[$path];130 return self::$_included[$path]; 98 131 } 99 132 100 133 /** 101 134 * Inclusion de librairies Copix 102 * @param string $pClassName le nom de la classe que l'on souhaites inclure 103 * @return boolean le fichier est ou non connu 135 * 136 * @param string $pClassName le nom de la classe que l'on souhaites inclure 137 * @return boolean 104 138 * @see CopixAutoloader 105 139 * @todo Zone, Services, HTMLHeader, Cache, ClassesFactory, I18N, EventNotifier, Db, DBQueryParam, DAOFactory, Auth, User, Log 106 140 */ 107 public static function RequireClass ($pClassName) {141 public static function RequireClass ($pClassName) { 108 142 // Tente d'abord de déclencher un autoloading 109 if (!class_exists($pClassName, true)) {143 if (!class_exists ($pClassName, true)) { 110 144 // Essaie quand même de charger la classe 111 145 // au cas où CopixAutoloader ne soit plus enregistré comme autoloader 112 if (!CopixAutoloader::getInstance()->load($pClassName)) {113 throw new Exception ("Class $pClassName not found");146 if (!CopixAutoloader::getInstance ()->load ($pClassName)) { 147 throw new Exception ("Class $pClassName not found"); 114 148 } 115 149 } … … 119 153 //Définition de constantes. 120 154 define ('COPIX_VERSION_MAJOR', 3); 121 define ('COPIX_VERSION_MINOR', 1);122 define ('COPIX_VERSION_FIX', 0);155 define ('COPIX_VERSION_MINOR', 0); 156 define ('COPIX_VERSION_FIX', 5); 123 157 124 158 define ('COPIX_VERSION_RC', null); 125 159 define ('COPIX_VERSION_BETA', null); 126 160 define ('COPIX_VERSION_DEV', true); 127 128 161 129 162 $copixVersion = COPIX_VERSION_MAJOR . '.' . COPIX_VERSION_MINOR . '.' . COPIX_VERSION_FIX; … … 143 176 define ('COPIX_UTILS_PATH', COPIX_PATH.'utils/'); 144 177 145 define ('COPIX_ACTIONGROUP_DIR' , 'actiongroups/');146 define ('COPIX_DESC_DIR' , 'desc/');147 define ('COPIX_ZONES_DIR' , 'zones/');178 define ('COPIX_ACTIONGROUP_DIR', 'actiongroups/'); 179 define ('COPIX_DESC_DIR', 'desc/'); 180 define ('COPIX_ZONES_DIR', 'zones/'); 148 181 define ('COPIX_TEMPLATES_DIR', 'templates/'); 149 define ('COPIX_CLASSES_DIR' , 'classes/');182 define ('COPIX_CLASSES_DIR', 'classes/'); 150 183 define ('COPIX_RESOURCES_DIR', 'resources/'); 151 define ('COPIX_PLUGINS_DIR' , 'plugins/');184 define ('COPIX_PLUGINS_DIR', 'plugins/'); 152 185 define ('COPIX_INSTALL_DIR', 'install/'); 153 define ('COPIX_DOC_DIR', COPIX_INSTALL_DIR.'doc/');154 186 define ('COPIX_SMARTY_PATH', COPIX_PATH.'../smarty/'); 155 187 … … 160 192 161 193 Copix::RequireOnce (COPIX_CORE_PATH . 'CopixAutoloader.class.php'); 162 163 194 Copix::RequireOnce (COPIX_CORE_PATH . 'shortcuts.lib.php'); 164 //Copix::RequireOnce (COPIX_CORE_PATH . 'CopixErrorHandler.class.php');165 ?>
