Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je débute dans le Zend framework.
J'ai suivi les tutoriels
http://g-rossolini.developpez.com/tutor … k/debuter/
et
http://julien-pauli.developpez.com/tuto … sentation/
Mettons que je veuille représenter dans mon application des véhicules :
Je fais une classe "Véhicules" héritant de Zend_Db_Table associée a une table "Véhicules" :
-------------------------------------------
| id | type | vitessemax | Carburant |
-------------------------------------------
Maintenant je désire faire les classes Voitures et Moto, toutes deux héritant de Véhicules, car toutes deux ont une vitesse max et un carburant associe.
La table Voiture donne en plus d'autres attributs caractéristiques :
-----------------------------------
| id | nb_portes | options |
-----------------------------------
Tandis que la table Moto a d'autres attributs bien spécifiques :
---------------------------------------------
| id | demarreur_electrique_yes_no |
---------------------------------------------
Est-il possible de faire des classes Zend_Db_Table "Voitures" et "Moto", qui fassent automatiquement la liaison entre les deux tables, pour ne plus s'en preoccuper par la suite ?
Merci pour votre aide
Hors ligne
up
Hors ligne
Salut,
Je crois que la réponse est dans ton post à moins que je n'ai pas bien compris ta question ^^
Maintenant je désire faire les classes Voitures et Moto, toutes deux héritant de Véhicules
Du coup, tes DbTable Voiture et Moto héritent de Véhicule.
Hors ligne
Salut,
Je souhaite savoir si Zend permet de faire une interface entre moi et l'architecture des tables.
En clair, je voudrais faire un insert() avec la DbTable Voiture comme si c'était une table unique, et Zend va automatiquement enregistrer les bonnes données dans chaque table, à savoir nb_portes dans la table voiture, et carburant dans la table vehicule.
Est-ce possible ?
Hors ligne
Oui, il te suffit de redéfinir tes méthodes d'insertion et d'update afin d'appeler le parent.
Quand tu insères une voiture, tu appelles la méthode insert du dbTable Voiture et ce dernier appelle la méthode insert de ta classe parente à savoir Véhicule. Chacun met à jour le contenu de la table qui lui est assigné.
Idem pour ton objet Moto.
Je te conseille néanmoins d'utiliser les transactions afin d'éviter d'avoir des données erronées et orphelines dans ta base.
Hors ligne
Il n'y aurait pas un risque de transactions imbriquées si la profondeur d'héritage dépasse 1 ?
Hors ligne
Si bien sûr, il te faudra le gérer.
Hors ligne
Très clair, merci beaucoup :-)
Je n'aurai pas voulu passer à coté d'une solution facile si celle-ci existait.
Hors ligne
Pages: 1