Je n'utilise pas les magiques car je ne trouve pas ça propre.
$pmo->login = 'nouveaulogin';
En terme de lisibilité, c'est mal, même si derrière ça fait appel à une
méthode et que la variable est protected.
La deuxième raison c'est que les objets de PMO sont extensibles, et que
l'utilisateur peut utiliser ces propres objets grace au polymorphisme.
Implémentation des magiques pour d'autres fonctionnalités.
Le code PMO actuel
$object = $map->getObjectByValue('utilisateur","login","ancienLogin");
$object->setAttribute("login","nouveaulogin");
$object->commit();
Etant donné que cela fait quand même plusieurs fois qu'on me soumet cette
évolution, je vais tout de même y réfléchir.
Au niveau de la méthode singleton, cela est implémenté de cette manière:
$object = $controler->createObject("utilisateur");
Le controleur va créer l'objet avec les bons attributs initialisés à blanc. Il
est fort possible que dans la prochaine version la méthode create soit intégré
dans l'objet
[^] # Re: Mmmm, voyons voir...
Posté par Bruno Michel (site web personnel) . En réponse au journal PMO v 0.07 déjà. Évalué à 2.
$pmo->login = 'nouveaulogin';
En terme de lisibilité, c'est mal, même si derrière ça fait appel à une
méthode et que la variable est protected.
La deuxième raison c'est que les objets de PMO sont extensibles, et que
l'utilisateur peut utiliser ces propres objets grace au polymorphisme.
Implémentation des magiques pour d'autres fonctionnalités.
Comparaison:
$pmo = pmo_record::singleton()->get_by_login('ancienLogin');
$pmo->login = 'nouveaulogin';
$pmo->commit();
Le code PMO actuel
$object = $map->getObjectByValue('utilisateur","login","ancienLogin");
$object->setAttribute("login","nouveaulogin");
$object->commit();
Etant donné que cela fait quand même plusieurs fois qu'on me soumet cette
évolution, je vais tout de même y réfléchir.
Au niveau de la méthode singleton, cela est implémenté de cette manière:
$object = $controler->createObject("utilisateur");
Le controleur va créer l'objet avec les bons attributs initialisés à blanc. Il
est fort possible que dans la prochaine version la méthode create soit intégré
dans l'objet
$object->create('utilisateur");