| ||
auteur : Guillaume Rossolini | ||
Pour construire un objet $db permettant d'utiliser la base de données, une solution est d'utiliser la méthode abstraite Zend_Db::factory().
Zend_Db::factory() utilise des adaptateurs (Zend_Db_Adapter_*) pour initialiser la connexion. Cela signifie que vous pouvez utiliser un pilote direct comme MySQLi, DB2 ou Oracle, mais aussi passer par PDO pour avoir plus de flexibilité.
| ||
lien : Présentation du Zend Framework - Zend_Db lien : Quels adapteurs sont disponibles ? |
| ||
auteur : Reveur | ||
Lorsque vous utilisez PDO pour les accès à la base de données, l'extension PDO est configurée par ZF avec la constante PDO::CASE_NATURAL par défaut, ainsi les noms des tables et des champs peuvent être précisés indifféremment en majuscules ou minuscules.
Si vous souhaitez modifier ce comportement, utilisez le code suivant :
|
| ||
auteurs : Julien Pauli, Guillaume Rossolini | ||
Zend_Db permet de s'affranchir du code SQL, mais les fonctionnalités
de mapping relationnel objet (ORM) sont encore plus utiles.
Le Zend Framework propose cette l'ORM grâce à la classe
Zend_Db_Table_Abstract.
Exemple :
| ||
lien : Présentation du Zend Framework - #Zend_Db, par Julien Pauli lien : EZPDO: Object-Relational Mapping en PHP, par Pierre-Nicolas Mougel |
| ||
auteur : Guillaume Rossolini | ||
Utilisez toujours la doc en ligne pour obtenir la réponse à ce genre de questions.
À ce jour, vous pouvez utiliser les adaptateurs suivants :
| ||
lien : Comment construire l'objet $db ? |
| ||
auteurs : Julien Pauli, Guillaume Rossolini | ||
Oui, avec un peu de bonne volonté ;)
Les tuples des tables sont identifiés par un numéro automatique. Zend Framework permet de faire des requêtes en chaîne, de la forme (pour trouver le message #1 d'un forum) :
C'est pratique ; néanmoins, à l'issue de cette requête, j'obtiens l'identifiant de l'auteur $message->id_auteur plutôt que son nom. Je suis donc obligé de faire une seconde requête pour trouver le nom de l'auteur à partir de son identifiant :
Une solution pour éviter tout ce travail est d'étendre Zend_Db_Table_Abstract et d'utiliser cette nouvelle classe dans nos développements.
Plus de détails dans l'atelier par Julien.
| ||
lien : Atelier ZF : Des résultats pertinents avec les tables liées : l'ORM en mode FullLoading, par Julien Pauli |
| ||
auteurs : Guillaume Rossolini, Julien Pauli | ||
Ce n'est pas prévu par le framework de départ mais c'est possible en utilisant la classe de Réflexion introduite depuis PHP5.
| ||
lien : Documentation sur la Réflexion lien : Atelier : Implémentation de l'héritage de tables SQL sous Zend Framework, par Julien Pauli |
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.