Pratique de MySQL et PHP- P82:Quand la première édition de ce livre est parue, en janvier 2001, la réputation de MySQL et de PHP était déjà bien établie. Ces deux outils étaient connus pour être fiables, performants, pratiques et bien adaptés à une utilisation très spécialisée : la production dynamique de pages HTML. | Le composant Modèle du Zend Framework 383 Manipulation des données avec les classes ORM Les méthodes suivantes sont héritées par les classes ORM 1. find recherche des lignes en fonction d une ou plusieurs valeurs de clés primaires et retourne un ensemble de lignes instance de Zend_Db_Rowset 2. fetchRow ramène une seule ligne instance de Zend_Db_Row 3. fetchAll effectue une recherche générale il est possible de définir une clause where au préalable et renvoie un ensemble de lignes 4. info renvoie un tableau PHP donnant les informations connues sur le schéma de la table 5. createRow crée une ligne 6. insert insère une ligne dans la base 7. update effectue une mise à jour. Regardons quelques exemples tous extraits du contrôleur Model de ZSCOPE. Le premier cherche un film d identifiant 1. function simpletble Action tbl_film new Film this view film tbl_film find 1 current D abord on instancie la classe ORM et on obtient un objet qui fournit une interface orientée-objet avec le contenu de la table relationnelle. Ensuite on appelle la méthode find qui prend en entrée une valeur de clé primaire ou un tableau de valeurs et retourne un rowset que l on peut parcourir par itération avec des méthodes comme next previous et current . L exemple ci-dessus n est d ailleurs pas très robuste car il ne teste pas ce qui se passerait si aucune ligne n était ramenée. Quand une ligne instance de Zmax_Db_Row_Abstract est obtenue on accède à ses propriétés de manière naturelle avec la syntaxe obj- nom. L aspect le plus intéressant des classes ORM est cependant la possibilité de naviguer vers les lignes de la base associées à la ligne courante. L exemple suivant montre comment depuis un artiste pour simplifier on a mis en dur son identifiant on obtient tous les films mis en scène par cet artiste. function dependentAction On prend Quentin Tarantino d identifiant 37 tbl_artiste new Artiste artiste tbl_artiste find 37 current Maintenant cherchons les films mis en scène films artiste .