включить модули для других модулей - PullRequest
0 голосов
/ 25 августа 2011

у меня есть:

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

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

В модулях Новости все хорошо. Я хотел бы включить executeEdit и EditSuccess для модулей EditNews. Я хотел бы скопировать весь функционал и шаблон. Как я могу это сделать? Я не хочу копировать файлы. Я хотел бы что-то вроде include_partial или renderTemplate? Возможно? Я использую Symfony 1.4.13

Ответы [ 2 ]

0 голосов
/ 25 августа 2011

Вы иллюстрируете, почему важно иметь стройные действия и толстые модели.Вы должны перенести большую часть своей логики в свои модели или другие внешние классы, особенно если вы собираетесь повторно использовать этот код в других действиях.Таким образом, вы сможете уменьшить количество кода в ваших действиях до нескольких строк, при этом поддерживать общую кодовую базу для разных действий будет тривиально.

В конце концов, похоже, что вы будетехотя нужно два отдельных действия, поэтому либо вы копируете код и пытаетесь сохранить его в разных местах (= плохая практика), либо реорганизуете его, как я и предлагал.

0 голосов
/ 25 августа 2011

На самом деле это:

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

, и это также может быть актуально для вас:

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