[Symfony] Sympfony 1.2 et la gestion des modules

Petit nouveau ! | 1 Messages

06 mai 2009, 10:36

Bonjour,
J'ai quelques soucis d'appréhension sans doute sur la notion de modules sous symfony.
Pour moi un module c'est regrouper en quelques sortes des fonctionnalités d'une application sous une rubrique donnée (exemple j'ai une base avec 4 tables ou j'ai par exemple auteur et categorieauteur) pour moi ces deux tables doivent se retouver sous le meme module mais quand je vois la syntaxe que me propose la commande de generation de modules sous Symfony j'ai comme l'impression qu'on ne peut lui passer qu'un seul modele(php symfony doctrine:generate-module --with-show --non-verbose-templates frontend job auteur).
Alors ma question est de savoir est ce possible de generer un module basé sur plusieurs modèles a la fois c'est a dire sur plusieurs tables?
Si c'est possible comment proceder?Si ce n'est pas le cas comment alors gerer cela dans mon cas?
Aidez moi !!!

ViPHP
ViPHP | 1024 Messages

06 mai 2009, 10:46

Hello,

Un module généré travaille sur une seule table à la fois.

Mais tu peux lier un auteur à sa catégorie, en écrivant une méthode __toString() dans le model de la catégorie.

Si il faut insérer / mettre à jour plusieurs tables, il faut passer par le système de formulaires, en les personnalisant et en écrivant les actions/templates pour l'édition des données.

A+

Pascal
Modifié en dernier par pascaltje le 06 mai 2009, 11:52, modifié 1 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

06 mai 2009, 11:43

Je vais aller dans le sens de pascaltje, mais en allant plus loin.

Quand tu génères un module, tu précises la table centrale concernée par ton module.
Par exemple, ton module "Auteur" est voué à assurer la gestion des auteurs, il est donc centré sur la table "auteur".

Maintenant, ton besoin est de pouvoir assurer la manipulation des données des tables voisines à la table "auteur".
Heureusement, Symfony (via propel ou doctrine) sais faire ces rapprochements.
Du coup, dans le module qui sera généré, tu auras une interface qui t'affichera les auteurs, et pour chaque auteur, la liste des catégories qui lui sont associées, et ce, simplement parce que la table "categorieautheur" dispose d'une clé étrangère sur la table "auteur".

Maintenant, il est clair que si, dans le module "Auteur", tu veux pouvoir créer des catégories, il va te falloir étendre le code généré pour ton besoin propre.

J'espère avoir pu t'aider à avancer dans ta compréhesion de Symfony ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Skort93
Invité n'ayant pas de compte PHPfrance

06 juil. 2011, 14:45

Bonjour,

Je dois réaliser exactement la même chose sur 4 tables, c'est-à-dire afficher ma de liste contact mais aussi les entreprises rattachées aux contacts. Comment je dois procéder sous symfony 1.4 pour arriver à ce résultat ?

Eléphanteau du PHP | 15 Messages

12 juil. 2011, 10:44

Bonjour,

Sous Symfony 1.4 c'est exactement la même chose :)

Skort93
Invité n'ayant pas de compte PHPfrance

13 juil. 2011, 10:32

Et en plus détaillé ça donne quoi ? parce qu'il me semble que la méthode __toString() annoncée plus haut n'est adapté que pour afficher un seul champs de la base de donnée non ? Or je dois les afficher complétement...