2011-08-25 2 views
0

: Jecomprennent des modules pour d'autres modules

modules: News 
    action: 
    executeIndex 
    executeEdit 
    etc. 
    templates: 
    _editPlus.php 
    IndexSuccess.php 
    EditSuccess.php 

modules: EditNews 
     action: 
     ... 
     templates: 
     ... 

Dans les modules Nouvelles tout est bon. Je voudrais inclure executeEdit et EditSuccess pour les modules EditNews. Je voudrais copier toutes les fonctionnalités et le modèle. Comment puis-je le faire? Je ne veux pas copier des fichiers. Je voudrais quelque chose comme include_partial ou renderTemplate? Est possible? J'utilise Symfony 1.4.13

+0

Si les deux actions sont identiques, pourquoi avez-vous besoin d'une action supplémentaire dans le module EditNews? – Gerry

+0

je n'ai pas de code de répétition et si dans le premier j'ajoute des changements puis je voudrais changement automatique dans la seconde –

+0

Si elles doivent être et rester identiques, pourquoi s'embêter à créer la deuxième action du tout? Quel est le problème avec la réutilisation d'une seule action? – Gerry

Répondre

0

En effet, il est:

return $this->renderPartial('partialname'); // renders you _partial.php 
return $this->renderText('foobar'); // will only render you 'foobar' 

et cela pourrait être aussi utile pour vous:

return 'Finish'; // in your action will use ActionnameFinish.php as template 
+0

je voudrais rendre executeEdit et EditSucces pour autre exécution et autre succès. Je ne veux pas de code de répétition. –

0

Vous Illustrant pourquoi il est important d'avoir des actions de vaches maigres et gros modèles. Vous devriez déplacer la majeure partie de votre logique vers vos modèles ou d'autres classes externes, surtout si vous allez réutiliser ce code dans différentes actions. De cette façon, vous devriez être en mesure de réduire la quantité de code dans vos actions à seulement quelques lignes, il sera trivial de maintenir une base de code commune à travers différentes actions. En fin de compte, il semble que vous aurez besoin de deux actions distinctes, donc soit vous copiez le code et vous avez du mal à le maintenir dans différents endroits (= mauvaise pratique), soit vous le refait comme je l'ai suggéré .

+0

Je voudrais utiliser executeEdit et EditSuccess (module News) dans executeEdit et EditSucces (module second) –

+0

Je l'ai eu, mais vous prenez la mauvaise approche. – Gerry