Changeset 2925

Show
Ignore:
Timestamp:
07/23/08 10:56:27 (1 month ago)
Author:
gcroes
Message:

CopixPPO est maintenant dans son propre fichier

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/utils/copix/CopixClassPaths.inc.php

    r2918 r2925  
    203203    'copixphpgenerator' => COPIX_UTILS_PATH . 'CopixPHPGenerator.class.php', 
    204204    'copixphpgeneratorexception' => COPIX_UTILS_PATH . 'CopixPHPGenerator.class.php', 
    205     'copixppo' => COPIX_CORE_PATH . 'CopixActionGroup.class.php', 
     205    'copixppo' => COPIX_CORE_PATH . 'CopixPPO.class.php', 
    206206    'copixparameterhandler' => COPIX_UTILS_PATH . 'CopixParameterHandler.class.php', 
    207207    'copixplugin' => COPIX_UTILS_PATH . 'CopixPluginRegistry.class.php', 
  • trunk/utils/copix/core/CopixActionGroup.class.php

    r2870 r2925  
    88 * @license     http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file 
    99 */ 
    10  
    11 /** 
    12  * Classe de transport d'informations (utiliser pour les actions, le transfère de paramètres, etc...) 
    13  *  
    14  * @package     copix 
    15  * @subpackage  core 
    16  */ 
    17 class CopixPPO implements ArrayAccess { 
    18     /** 
    19      * Retourne l'élément où sauvegarder la donnée 
    20      *  
    21      * @param string $propertyName Nom de la propriété à récupérer 
    22      */ 
    23     public function &__get ($propertyName) { 
    24         return $this->$propertyName; 
    25     } 
    26      
    27     /** 
    28      * Surcharge de isset pour que les sous éléments "CopixPpo" soient correctement détectés comme vide lorsqu'il y a lieu 
    29      * 
    30      * @param string $propertyName 
    31      * @return boolean 
    32      */ 
    33     public function __isset ($propertyName){ 
    34         if ($this->$propertyName instanceof CopixPpo){ 
    35             $test = get_object_vars ($this->$propertyName); 
    36             return !empty ($test); 
    37         } 
    38         return isset ($this->$propertyName);  
    39     } 
    40  
    41     /** 
    42      * Constructeur 
    43      *  
    44      * @param array $pArInit Tableau de variables pour initialiser le ppo 
    45      */ 
    46     public function __construct ($pArInit = array ()) { 
    47         if (is_array ($pArInit)) { 
    48             foreach ($pArInit as $key => $item) { 
    49                 $this->$key = $item; 
    50             } 
    51         }elseif (is_object ($pArInit)){ 
    52             foreach (get_object_vars ($pArInit) as $key => $item){ 
    53                 $this->$key = $item; 
    54             } 
    55         } 
    56     } 
    57      
    58     /** 
    59      * Implémentation de ArrayAccess, pour la récupération de $pOffset 
    60      * 
    61      * @param string $pOffset 
    62      * @return mixed 
    63      */ 
    64     public function offsetGet ($pOffset) { 
    65         return $this->$pOffset; 
    66     } 
    67      
    68     /** 
    69      * Implémentation de ArrayAccess, pour la définition de $pOffset 
    70      * 
    71      * @param string $pOffset 
    72      * @param mixed $pValue 
    73      */ 
    74     public function offsetSet ($pOffset, $pValue) { 
    75         if ($pOffset === null){ 
    76             $vars = get_object_vars ($this); 
    77             if (count ($vars) === 0){ 
    78                 $pOffset = 0; 
    79             }else{ 
    80                 $pOffset = max (array_keys (get_object_vars ($this)))+1; 
    81             } 
    82         } 
    83         $this->$pOffset = $pValue; 
    84     } 
    85      
    86     /** 
    87      * Implémentation de ArrayAccess, vérifie l'existance de $pOffset 
    88      * 
    89      * @param string $pOffset 
    90      * @return boolean 
    91      */ 
    92     public function offsetExists ($pOffset) { 
    93         return isset ($this->$pOffset);  
    94     } 
    95      
    96     /** 
    97      * Implémentation de ArrayAccess, supprime $pOffset 
    98      * 
    99      * @param string $pOffset 
    100      */ 
    101     public function offsetUnset ($pOffset) { 
    102         $this->$pOffset = null; 
    103     } 
    104      
    105     /** 
    106      * En cas de demande d'affichage directe 
    107      */ 
    108     public function __toString (){ 
    109         return ''; 
    110     } 
    111      
    112      
    113     /** 
    114      * Merge, assigne les propriétés de l'objet en cours avec celles d'un autre objet/tableau/element 
    115      * Les propriétés existantes ne sont pas ajoutées 
    116      *  
    117      * @param   mixed $pToMerge Objet à ajouter 
    118      * @return  CopixPPO  
    119      */ 
    120     public function merge ($pToMerge){ 
    121         if (is_array ($pToMerge)){ 
    122             $pToMerge = new CopixPPO ($pToMerge); 
    123         }elseif (is_object ($pToMerge)){ 
    124             if (!( $pToMerge instanceof CopixPPO)){ 
    125                 $pToMerge = new CopixPPO (get_object_vars ($pToMerge)); 
    126             }            
    127         }else{ 
    128             $pToMerge = array ($pToMerge); 
    129         } 
    130  
    131         foreach (get_object_vars ($pToMerge) as $name=>$prop){ 
    132             if (! isset ($this->$name)){ 
    133                 $this->$name = $prop; 
    134             } 
    135         } 
    136         return $this; 
    137     } 
    138 } 
    139  
    140 /** 
    141  * CopixRecursivePpo 
    142  * Identique à CopixPpo sauf qu'il permet l'utilisation des appels imbriqués sans notice du style  
    143  *  $ppo['test']->foo->foo['test'][] = 1 
    144  * Attention if ($ppo->unsetValue){} vaudra vrai car chaque valeur non définie retournera un objet vide 
    145  */ 
    146 class CopixRPPO extends CopixPpo { 
    147     /** 
    148      * Retourne l'élément où sauvegarder la donnée 
    149      *  
    150      * @param string $propertyName Nom de la propriété à récupérer 
    151      */ 
    152     public function & __get ($propertyName) { 
    153         $this->$propertyName = new CopixRPpo (); 
    154         return $this->$propertyName; 
    155     } 
    156 } 
    15710 
    15811/**