Mouai. Alors d'une part, je trouve plus simple d'écrire
$book->setTitle('The Propel Story');
Plutôt que
$book ->setAttribute('titre', 'The Propel Story');
Ensuite, tu as du raté quelque chose en PHP5, ce sont les méthodes magiques __getter__ et __setter__ qui peuvent t'éviter d'écrire des methodes setters et getters ;-)
c'est la gestion des jointures de pouvoir créer plusieurs objets qui correspondent aux différentes tables à partir d'une seule ligne résultat. La problèmatique est que SQL ne renvoit pas la provenance des résultats en fonction des tables.
D'où l'utilisation avec jDao, dans mon framework Jelix, d'un fichier XML qui explicite le mapping à faire. Cela permet ensuite à jDao de compiler à la volée des classes PHP (et les requêtes qui vont avec) et de savoir à jDao quel champs appartient à quelle table. (et je précise que le fichier XML peut être généré directement à partir de la table via un script en ligne de commande). http://jelix.org/articles/tutoriel/utiliser-dao .
Cela a aussi l'avantage d'implémenter en partie ce que tu appelle du domaine du rêve dans un commentaire précédent : un système relationnel objet.
En effet, faire du mapping objet, ce n'est pas seulement faire "une table = un objet" (sinon ça sert pas à grand chose, autant utiliser l'api proposée par PHP : http://fr.php.net/manual/fr/ref.mysqli.php qui manipule des objets), mais plusieurs tables = un objet. Bref, permettre la possibilité qu'un objet tire ses informations de plusieurs tables à la fois.
[^] # Re: Soucis
Posté par Laurent J (site web personnel, Mastodon) . En réponse au journal Api php5 mysql object = phpmyobject. Évalué à 2.
Mouai. Alors d'une part, je trouve plus simple d'écrire
$book->setTitle('The Propel Story');
Plutôt que
$book ->setAttribute('titre', 'The Propel Story');
Ensuite, tu as du raté quelque chose en PHP5, ce sont les méthodes magiques __getter__ et __setter__ qui peuvent t'éviter d'écrire des methodes setters et getters ;-)
D'où l'utilisation avec jDao, dans mon framework Jelix, d'un fichier XML qui explicite le mapping à faire. Cela permet ensuite à jDao de compiler à la volée des classes PHP (et les requêtes qui vont avec) et de savoir à jDao quel champs appartient à quelle table. (et je précise que le fichier XML peut être généré directement à partir de la table via un script en ligne de commande). http://jelix.org/articles/tutoriel/utiliser-dao .
Cela a aussi l'avantage d'implémenter en partie ce que tu appelle du domaine du rêve dans un commentaire précédent : un système relationnel objet.
En effet, faire du mapping objet, ce n'est pas seulement faire "une table = un objet" (sinon ça sert pas à grand chose, autant utiliser l'api proposée par PHP : http://fr.php.net/manual/fr/ref.mysqli.php qui manipule des objets), mais plusieurs tables = un objet. Bref, permettre la possibilité qu'un objet tire ses informations de plusieurs tables à la fois.