Précédent   Forum du club des développeurs et IT Pro > PHP > Bibliothèques et frameworks > symfony1
symfony1 Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 06/11/2012, 11h28   #1
deblan
Invité de passage
 
Homme Simon
Analsyte développeur, administrateur système
Inscription : novembre 2012
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Simon
Localisation : France, Doubs (Franche Comté)

Informations professionnelles :
Activité : Analsyte développeur, administrateur système
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2012
Messages : 2
Points : 0
Points : 0
Par défaut Symfony2, méthode render de twig, bundle et contrôleur non explicites

Bonjour,

Dans le cadre de mon travail, je suis en train de développer un générateur de crud pour Propel.

J'ai un contrôleur qui gère les actions de bases de mon crud. Il appartient à un bundle qui lui est est spécifique. Il contient des templates qui sont ceux utilisés par défaut. Chaque bundle ayant besoin d'un crud va étendre cette base et hériter de ses templates.

Mon contrôleur de base a besoin d'être configuré. Ainsi, dans chacun des crud qui hérite de lui, j'ai un attribut qui contient une configuration.

Une des fonctionnalités de mon contrôleur de base est la gestion de message flash associé à l'utilisateur courant. Dans ses template, je faisais ça :
{% render "MonBundleDeBase:MonControleurDeBase:flash" %}
Ça avait pour action de faire une sous requête vers flashAction dans MonControleurDeBaseController de MonBundleDeBase.

Mes bundle de crud ne font que de la configuration (définition du model à gérer, des formulaire à utilser, etc) et ma gestion des message flash traite la notion d'espace de nom (généré en fonction du model).

Ainsi, si je garde la notation suivante :
{% render "MonBundleDeBase:MonControleurDeBase:flash" %}
Je n'ai plus accès à la configuration du Bundle courant qui pourrait être n'importe quoi : FooBundle/BarController, BooBundle/BiduleController, etc).

Je souhaite donc remplacer :
{% render "MonBundleDeBase:MonControleurDeBase:flash" %}
pour que "MonBundleDeBase" soit le Bundle courant et "MonControleurDeBase" le contrôleur courant. Ainsi, dans chaque crud, lors de leur exécution, mon action "flashAction" pourra prendre en compte la configuration spécifique qui aura été faite.

Avez-vous une solution svp ?

Merci
deblan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2012, 11h18   #2
deblan
Invité de passage
 
Homme Simon
Analsyte développeur, administrateur système
Inscription : novembre 2012
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Simon
Localisation : France, Doubs (Franche Comté)

Informations professionnelles :
Activité : Analsyte développeur, administrateur système
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2012
Messages : 2
Points : 0
Points : 0
J'ai "trouvé" une solution qui, à défaut d'avoir un code propre, permet de faire en gros ce que je demande :
{% render app.request.get('_template').get('bundle') ~ ":" ~ app.request.get('_template').get('controller') ~ ":flash" %}
Je suis cependant curieux de savoir si une méthode existe pour faire plus court
deblan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2012, 13h51   #3
gototog
Membre expérimenté
 
Homme Renaud B
Inscription : septembre 2009
Messages : 370
Détails du profil
Informations personnelles :
Nom : Homme Renaud B
Âge : 23
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : septembre 2009
Messages : 370
Points : 504
Points : 504
N'hésite pas a aller te renseigner du coté symfony 2, ici on est pas a jour :p

http://www.developpez.net/forums/f15...orks/symfony2/
gototog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 16h33.


 
 
 
 
Partenaires

Hébergement Web