Как реализовать базовый класс для контроллеров Symfony2 - PullRequest
6 голосов
/ 27 апреля 2011

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

   $this->getEntityManager();
   $this->getRequest();
   $this->getRepository($entityName);

Как это можно сделать?

AFAIK мы должны внедрить сервисы в базовый контроллер, но как я могу сказать классам использовать сервис для их суперкласса? Есть хорошая статья о контроллерах и внедрении зависимостей [1], но, наконец, я тоже застрял с этим подходом, см. Мой комментарий здесь: [2]

[1] http://miller.limethinking.co.uk/2011/04/15/symfony2-controller-as-service/

[2] http://miller.limethinking.co.uk/2011/04/15/symfony2-controller-as-service/#comment-579

1 Ответ

3 голосов
/ 27 апреля 2011

псевдокод

MyBaseController impliments Symfony\Component\Di\ContainerAwareInterface
  setContainer($container)
    $this->container = $container

  getEntityManager
    return $this->container->get('doctrine.orm.entity_manager')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...