Présentation
CopixPPO est une classe "vide" dont l'objectif est de transporter des données, principalement utilisée dans les actions de type PPO.
Demander la récupération d'une propriété inexistante d'un objet de type PPO ne génère pas de notice.
Exemples
$ppo = new CopixPPO ();
$ppo->data = 'contenu';
$ppo->data_autre = 'contenu autre';
//...
echo $ppo->existe_pas; //ne génère pas de notice
Il est possible de passer un tableau associatif au constructeur pour initialiser l'objet.
exemple
$ppo = new CopixPPO (array ('TITLE_PAGE'=>'Titre de ma page'));
$ppo->data = 'contenu';
$ppo->data_autre = 'contenu autre';
//...
Raccourcis
Dans la version SVN, un raccourcis a été créé ainsi qu'une méthode à CopixPPO pour faire un "merge". Exemple:
Voici un exemple de test que vous pouvez réaliser. L'utilisation d'un objet anonyme _ppo dans les paramètres d'une méhtode permet d'envoyer une liste d'arguemnts facilement modifiable sans briser l'implémentation.
<?php
class ActionGroupTest extends CopixActionGroup {
function processDefault(){
//test appel la classe ci dessous avec un ppo en arguement
testme::doTest(_ppo(array(
'bar'=>'assignees'
)));
return _arNone();
}
}
class testme {
function doTest($p_options){
//affiche les options envoyées en paramètre
var_dump($p_options);
//merge les valeurs par défaut, génération anonyme de ppo
$p_options->merge (_ppo(array(
'foo'=>'foodefault',
'bar'=>'bardefault',
'baz'=>'bazdefault'
)));
//ou via un tableau associatif
$p_options->merge (array(
'foo'=>'foodefault',
'bar'=>'bardefault',
'baz'=>'bazdefault'
));
//ou via un ppo
$ppo = new CopixPPO;
$ppo->foo = 'foodefault';
$ppo->bar = 'bardefault';
$ppo->baz = 'bazdefault';
$p_options->merge($ppo);
//affiche le nouvel objet
var_dump($p_options);
}
}
?>
Le résultat:
#Avant merge
object(CopixPPO)#21 (1) {
["bar"]=>
string(9) "assignees"
}
#Après merge
object(CopixPPO)#21 (3) {
["bar"]=>
string(9) "assignees"
["foo"]=>
string(10) "foodefault"
["baz"]=>
string(10) "bazdefault"
}
Vous voyez que la propriété "bar" n'a pas été modifié, mais les deux autres propriétés on été ajoutées avec leurs valeurs respectives.

