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. 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");