Bonjour a tous
j'ai repris un projet de dev web sur lequel est installé pear et qui utilise pear pour la couche d'abstraction à la base de données.
il n'est pas simple de trouver bcp de doc sur pear et des guides d'utilisation.
voici comment le projet a utilisé pear pour les accés à la bdd mysql
- les tables sous crées sous phpmyadmin
- un script 'createtables' génère les classes objets de chaque table de la bdd en etendant la classe db-dataobjects
- puis une classe appelé 'metier' étend la classe objet precedemment créee afin de rajouter dans cette classe des fonctions liées à la table (ex : insertion, maj, recherche etc etc)
pour utiliser dans un prog. php la table de la bdd, une instance de la table est crée : ex $obj_utilisateur = new utilisateur(); (utilisateur = une table de la bdd).
puis ajout de whereadd order by et fetch pour lire la table
jusque là tout me va (j'esperes avoir été clair).
La ou ca se corse........
les ex eveloppeurs n'ont jamais utilisé de jointure avec pear dataobjects ce qui n'est pas top.
j'ai utilisé la clause joinadd de pear mais cela necessite la maj d'un fichier .ini pour déclarer les cléfs étrangères et de plus dés qu'il y a 5 ou 6 tables avec des unions et des subselect, cela devient l'usine..............
voici la solution que j'ai trouvé pour me faciliter la tache.
je déclare directement une instance de la dataobjects et non une instance d'une ou plusieurs tables de la dataobject.
ensuite je fait un 'query pear' sur cette instance
$obj = new dataobjects();
$obj->query("select * from etc etc inner join etc etc......);
alors là tout va mieux ..........
est-ce ok ?
mais au bout du compte, si on requête de cette manière, a quoi sert alors d'utiliser pear ?
merci pour votre éclairage
Partager