Как избежать больших действий классов с Symfony 1.4 - PullRequest
0 голосов
/ 15 апреля 2011

работает над проектом в минуту и ​​не чувствует, что код так хорошо структурирован / отделен / поддерживается, как и должно быть.

Я думаю, что основная проблема заключается в использовании одного класса действий для выполнения основной работы моей системы. Но каковы альтернативы? Мои другие модули довольно простые и отдельные.

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

Я читал http://www.slideshare.net/nperriault/30-symfony-best-practices, в котором есть несколько хороших моментов, один из которых - избегать больших классов действий, но на самом деле не говорит вам, как это должно быть сделано.

Должен ли я разбить свой класс действий и иметь разные файлы в / apps / frontend / module / myModule / lib /.

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

Некоторые общие указатели были бы великолепны, спасибо

Ответы [ 2 ]

1 голос
/ 16 января 2012

Вы можете хранить все действия в одном файле или помещать каждое действие в отдельный файл.

Таким образом, либо

class mymoduleActions extends sfActions
{
  public function executeIndex($request)
  {
    // ...
  }

  public function executeList($request)
  {
    // ...
  }
}

, либо

class indexAction extends sfAction
{
  public function execute($request)
  {
    // ...
  }
}

плюс

class listAction extends sfAction
{
  public function execute($request)
  {
    // ...
  }
}

Все это в документации .Затем вы должны поместить повторно используемый код в родительский класс XYZAction, который могут расширять оба класса действий.

0 голосов
/ 15 апреля 2011

Вы всегда можете ввести код в apps/frontend/lib.Создайте классы с кодом, который можно использовать повторно, и вы можете просто вызывать методы из ваших действий, чтобы избежать дублирования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...