Повторное использование действий в Symfony - PullRequest
0 голосов
/ 29 апреля 2011

Допустим, у нас есть модель Article и модель Comment.

Article:
  columns:
    body: text

Comment:
  columns:
    article_id: integer
    message: text
  relations:
    Article:
      local: article_id
      foreign: id
      foreignAlias: Comments

И мы генерируем 2 модели на основе наборов маршрутов «article» и «comment»:

article:
  class: sfDoctrineRouteCollection
  options:
    module: article
    model: Article

comment:
  class: sfDoctrineRouteCollection
  options:
    module: comment
    model: Comment

Итак, у нас в основном есть 2 сырой нефти для каждой модели. Теперь в демонстрационном действии статьи я хотел бы отобразить статью, связанные с ней комментарии и форму для добавления комментария.

class articleActions extends sfActions
{
  public function executeShow(sfWebRequest $request)
  {
    $this->article = $this->getRoute()->getObject();
    $this->comments = Doctrine::getTable('Comment')->findAllByArticleId ($this->article->getId());
    $this->form = new CommentForm();

  }
}

Вопрос в том, как я могу повторно использовать комментарии / новые и комментировать / создавать действия при публикации комментариев в статье / показывать действие? Это правильный способ организовать код?

1 Ответ

1 голос
/ 04 июня 2011

Если вы хотите повторно использовать действия, возможно, вам нужен компонент. Компоненты аналогичны частичным, но вы используете компонент, когда вам необходимо добавить к нему некоторую логику (например, код, который вы используете в действии comment / new или comment / create).

Компонент похож на действие, кроме это намного быстрее Логика компонент хранится в классе наследование от sfComponents, расположенных в action / components.class.php файл. Его презентация хранится в частично.

посмотрите здесь документы Symfony :

документы для Symfony 1.2, я использую это в Symfony 1.4 без проблем

Я действительно уверен, что Компонент - это то, что вы ищете.

...