(29-11-2010, 11:49 AM)Dexyne a écrit : J'ai pas tout compris à l'utilité de ça mais en gros toutes les variables sont foutu dans un tableau ?
Comment les met tu dans le tableau ? (tu parles de SQL alors ça m'embrouille un poil )
regarde le dernier code de christouphe (factory)
le résultat de la requête SQL est stocké dans $data qui est une matrice
$data[0] = premier enregistrement lu
$data[1] = deuxième enregistrement lu
$data[2] = troisième enregistrement lu
$data[3] = quatrième enregistrement lu
d'où la boucle qu'il fait pour créer les objets :
foreach ($data AS $unite)
dans $unite tu as un enregistrement de la base de données. Fonction des options que l'on met dans pdo pour lancer la requête, le tableau $unite peut avoir comme index le nom du champ tel que lu dans la bdd
c'est justement ce qu'utilise Christouphe :
$oUnite = new daoUnite($unite['id'],
$unite['nom'],
$unite['description'],
maintenant perso, je ne me soucie plus de cela, là où Christouphe, retape chaque champ dans le code factory et dans le code de la classe unité, moi je réduis fortement les lignes car je m'appuie directement sur le tableau de la requête SQL
$oUnite = new daoUnite($unite);
dans tous les cas le système est le même
1) la factory qui lance la requete SQL
2) la factory qui récupère n enregistrements sous forme de tableau associatif (avec les noms des champs bdd)
3) la factory qui boucle sur les enregistrements et crée autant d'instances de la classe qu'il y a d'enregistrements
4) le constructeur de la classe qui reçoit comme paramètres (moi tableau, christouphe en clair) les données de l'enregistrement et les stocke dans son instance
a noter, y a quand même un intérêt que je vois à écrire en clair plutôt qu'à utiliser ma méthode "générique", c'est que la méthode de christouphe permet une plus grande liberté de nommage entre les champs bdd et les propriétés de l'objet, mais je n'en ai pas l'utilité personnellement