Changeset 3157

Show
Ignore:
Timestamp:
08/20/08 16:50:08 (3 months ago)
Author:
steevanb
Message:

- Ajout d'un paramètre $pExtras à CopixException::construct
- Ajout de méthodes getExtras et getExtra à CopixException
- #150 Mise aux normes de développement

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/Copix_3_0_X/utils/copix/copix.inc.php

    r2763 r3157  
    11<?php 
    22/** 
    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 */ 
     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 */ 
    99 
    1010/** 
    1111 * Classe de base pour toutes les exceptions qui seront levées par Copix et les services Copix 
     12 *  
    1213 * @package copix 
    13  * @subpackage core 
     14 * @subpackage core 
    1415 */ 
    1516class 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    } 
    2354} 
    2455 
    2556/** 
    26  * Interface d'un gestionnaire d'erreur. 
     57 * Interface d'un gestionnaire d'erreur 
    2758 * 
     59 * @package copix 
     60 * @subpackage core 
    2861 */ 
    2962interface ICopixErrorHandler { 
     63    /** 
     64     * Indique au gestionnaire d'erreur qu'il peut gérer les E_STRICT 
     65     */ 
     66    public function processStricts (); 
    3067     
    3168    /** 
    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 
    3376     */ 
    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); 
    4778} 
    4879 
    4980/** 
    5081 * Classe utilitaire qui permet l'inclusion des fichiers et bibliothéques Copix 
     82 *  
    5183 * @package copix 
    52  * @subpackage core 
     84 * @subpackage core 
    5385 */ 
    5486class Copix { 
     87    /** 
     88     * Fichiers déjà inclus 
     89     *  
     90     * @var array  
     91     */ 
     92    private static $_included = array (); 
    5593 
    5694    /** 
    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 
    6496     * 
    6597     * @var ICopixErrorHandler 
    6698     */ 
    67     static private $_errorHandler = null; 
     99    private static $_errorHandler = null; 
    68100     
    69101    /** 
    70102     * Met en place un nouveau gestionnaire d'erreur. 
    71103     * 
    72      * @param ICopixErrorHandler $pErrorHandler Nouveau gestionnaire d'erreur. 
     104     * @param ICopixErrorHandler $pErrorHandler Nouveau gestionnaire d'erreur 
    73105     */ 
    74     static public function setErrorHandler(ICopixErrorHandler $pErrorHandler) { 
     106    public static function setErrorHandler (ICopixErrorHandler $pErrorHandler) { 
    75107        self::$_errorHandler = $pErrorHandler; 
    76         set_error_handler(array($pErrorHandler, 'handle')); 
     108        set_error_handler (array ($pErrorHandler, 'handle')); 
    77109    } 
    78110  
    79111    /** 
    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 
    83116     */ 
    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]))
    87120            if (file_exists ($pPath)) { 
    88121                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 (); 
    92125                } 
    93126            } else { 
     
    95128            } 
    96129        } 
    97         return self::$_included[$path]; 
     130       return self::$_included[$path]; 
    98131    } 
    99132     
    100133    /** 
    101134     * 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 
    104138     * @see CopixAutoloader 
    105139     * @todo Zone, Services, HTMLHeader, Cache, ClassesFactory, I18N, EventNotifier, Db, DBQueryParam, DAOFactory, Auth, User, Log 
    106140     */ 
    107     public static function RequireClass ($pClassName)
     141    public static function RequireClass ($pClassName)
    108142        // Tente d'abord de déclencher un autoloading  
    109         if(!class_exists($pClassName, true)) {  
     143        if (!class_exists ($pClassName, true)) {  
    110144            // Essaie quand même de charger la classe 
    111145            // 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"); 
    114148            } 
    115149        } 
     
    119153//Définition de constantes. 
    120154define ('COPIX_VERSION_MAJOR', 3); 
    121 define ('COPIX_VERSION_MINOR', 1); 
    122 define ('COPIX_VERSION_FIX', 0); 
     155define ('COPIX_VERSION_MINOR', 0); 
     156define ('COPIX_VERSION_FIX', 5); 
    123157 
    124158define ('COPIX_VERSION_RC', null); 
    125159define ('COPIX_VERSION_BETA', null); 
    126160define ('COPIX_VERSION_DEV', true); 
    127  
    128161 
    129162$copixVersion = COPIX_VERSION_MAJOR . '.' . COPIX_VERSION_MINOR . '.' . COPIX_VERSION_FIX; 
     
    143176define ('COPIX_UTILS_PATH', COPIX_PATH.'utils/'); 
    144177 
    145 define ('COPIX_ACTIONGROUP_DIR'    , 'actiongroups/'); 
    146 define ('COPIX_DESC_DIR'     , 'desc/'); 
    147 define ('COPIX_ZONES_DIR'    , 'zones/'); 
     178define ('COPIX_ACTIONGROUP_DIR', 'actiongroups/'); 
     179define ('COPIX_DESC_DIR', 'desc/'); 
     180define ('COPIX_ZONES_DIR', 'zones/'); 
    148181define ('COPIX_TEMPLATES_DIR', 'templates/'); 
    149 define ('COPIX_CLASSES_DIR'  , 'classes/'); 
     182define ('COPIX_CLASSES_DIR', 'classes/'); 
    150183define ('COPIX_RESOURCES_DIR', 'resources/'); 
    151 define ('COPIX_PLUGINS_DIR'    , 'plugins/'); 
     184define ('COPIX_PLUGINS_DIR', 'plugins/'); 
    152185define ('COPIX_INSTALL_DIR', 'install/'); 
    153186define ('COPIX_SMARTY_PATH', COPIX_PATH.'../smarty/'); 
     
    159192 
    160193Copix::RequireOnce (COPIX_CORE_PATH . 'CopixAutoloader.class.php'); 
    161  
    162194Copix::RequireOnce (COPIX_CORE_PATH . 'shortcuts.lib.php'); 
    163 //Copix::RequireOnce (COPIX_CORE_PATH . 'CopixErrorHandler.class.php'); 
    164 /* N'est plus nécessaire avec l'autoloader  
    165 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  
    11<?php 
    22/** 
    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 */ 
     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 */ 
    99 
    1010/** 
    1111 * Classe de base pour toutes les exceptions qui seront levées par Copix et les services Copix 
     12 *  
    1213 * @package copix 
    13  * @subpackage core 
     14 * @subpackage core 
    1415 */ 
    1516class 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    } 
    2354} 
    2455 
    2556/** 
    26  * Interface d'un gestionnaire d'erreur. 
     57 * Interface d'un gestionnaire d'erreur 
    2758 * 
     59 * @package copix 
     60 * @subpackage core 
    2861 */ 
    2962interface ICopixErrorHandler { 
     63    /** 
     64     * Indique au gestionnaire d'erreur qu'il peut gérer les E_STRICT 
     65     */ 
     66    public function processStricts (); 
    3067     
    3168    /** 
    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 
    3376     */ 
    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); 
    4778} 
    4879 
    4980/** 
    5081 * Classe utilitaire qui permet l'inclusion des fichiers et bibliothéques Copix 
     82 *  
    5183 * @package copix 
    52  * @subpackage core 
     84 * @subpackage core 
    5385 */ 
    5486class Copix { 
     87    /** 
     88     * Fichiers déjà inclus 
     89     *  
     90     * @var array  
     91     */ 
     92    private static $_included = array (); 
    5593 
    5694    /** 
    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 
    6496     * 
    6597     * @var ICopixErrorHandler 
    6698     */ 
    67     static private $_errorHandler = null; 
     99    private static $_errorHandler = null; 
    68100     
    69101    /** 
    70102     * Met en place un nouveau gestionnaire d'erreur. 
    71103     * 
    72      * @param ICopixErrorHandler $pErrorHandler Nouveau gestionnaire d'erreur. 
     104     * @param ICopixErrorHandler $pErrorHandler Nouveau gestionnaire d'erreur 
    73105     */ 
    74     static public function setErrorHandler(ICopixErrorHandler $pErrorHandler) { 
     106    public static function setErrorHandler (ICopixErrorHandler $pErrorHandler) { 
    75107        self::$_errorHandler = $pErrorHandler; 
    76         set_error_handler(array($pErrorHandler, 'handle')); 
     108        set_error_handler (array ($pErrorHandler, 'handle')); 
    77109    } 
    78110  
    79111    /** 
    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 
    83116     */ 
    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]))
    87120            if (file_exists ($pPath)) { 
    88121                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 (); 
    92125                } 
    93126            } else { 
     
    95128            } 
    96129        } 
    97         return self::$_included[$path]; 
     130       return self::$_included[$path]; 
    98131    } 
    99132     
    100133    /** 
    101134     * 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 
    104138     * @see CopixAutoloader 
    105139     * @todo Zone, Services, HTMLHeader, Cache, ClassesFactory, I18N, EventNotifier, Db, DBQueryParam, DAOFactory, Auth, User, Log 
    106140     */ 
    107     public static function RequireClass ($pClassName)
     141    public static function RequireClass ($pClassName)
    108142        // Tente d'abord de déclencher un autoloading  
    109         if(!class_exists($pClassName, true)) {  
     143        if (!class_exists ($pClassName, true)) {  
    110144            // Essaie quand même de charger la classe 
    111145            // 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"); 
    114148            } 
    115149        } 
     
    119153//Définition de constantes. 
    120154define ('COPIX_VERSION_MAJOR', 3); 
    121 define ('COPIX_VERSION_MINOR', 1); 
    122 define ('COPIX_VERSION_FIX', 0); 
     155define ('COPIX_VERSION_MINOR', 0); 
     156define ('COPIX_VERSION_FIX', 5); 
    123157 
    124158define ('COPIX_VERSION_RC', null); 
    125159define ('COPIX_VERSION_BETA', null); 
    126160define ('COPIX_VERSION_DEV', true); 
    127  
    128161 
    129162$copixVersion = COPIX_VERSION_MAJOR . '.' . COPIX_VERSION_MINOR . '.' . COPIX_VERSION_FIX; 
     
    143176define ('COPIX_UTILS_PATH', COPIX_PATH.'utils/'); 
    144177 
    145 define ('COPIX_ACTIONGROUP_DIR'    , 'actiongroups/'); 
    146 define ('COPIX_DESC_DIR'     , 'desc/'); 
    147 define ('COPIX_ZONES_DIR'    , 'zones/'); 
     178define ('COPIX_ACTIONGROUP_DIR', 'actiongroups/'); 
     179define ('COPIX_DESC_DIR', 'desc/'); 
     180define ('COPIX_ZONES_DIR', 'zones/'); 
    148181define ('COPIX_TEMPLATES_DIR', 'templates/'); 
    149 define ('COPIX_CLASSES_DIR'  , 'classes/'); 
     182define ('COPIX_CLASSES_DIR', 'classes/'); 
    150183define ('COPIX_RESOURCES_DIR', 'resources/'); 
    151 define ('COPIX_PLUGINS_DIR'    , 'plugins/'); 
     184define ('COPIX_PLUGINS_DIR', 'plugins/'); 
    152185define ('COPIX_INSTALL_DIR', 'install/'); 
    153 define ('COPIX_DOC_DIR', COPIX_INSTALL_DIR.'doc/'); 
    154186define ('COPIX_SMARTY_PATH', COPIX_PATH.'../smarty/'); 
    155187 
     
    160192 
    161193Copix::RequireOnce (COPIX_CORE_PATH . 'CopixAutoloader.class.php'); 
    162  
    163194Copix::RequireOnce (COPIX_CORE_PATH . 'shortcuts.lib.php'); 
    164 //Copix::RequireOnce (COPIX_CORE_PATH . 'CopixErrorHandler.class.php'); 
    165 ?>