Я пытаюсь создать простой сервис для рендеринга различных типов страниц. Основная концепция иметь что-то вроде:Шаблон стратегии в Symfony2
$somePageType = new PageType(...);
$this->get('page.service')->render($somePagetype);
... который будет разработан в качестве Strategy pattern. Типы страниц будут реализовывать интерфейс с помощью метода render
, и page.service
назвал бы его. Проблема в том, что я бы хотел использовать Doctrine в классах типов страниц. Какие у меня варианты? Я бы хотел избежать создания службы для каждого из этих классов. Возможно ли это? Можно ли сделать их контейнерами без обслуживания? Возможно, в будущем для некоторых типов страниц может потребоваться нечто большее, чем только Доктрина, поэтому мне нужно также помнить об этом.
Нехорошо проходить мимо контейнера. Если его объект требует доктрины, он должен потребовать его, добавив параметр в конструктор для объекта doctrine. – meze
@meze конечно, но что, если каждая стратегия имеет разные зависимости. Это был бы единственный способ. Тем не менее, я бы лично определил все стратегии как услуги на самом деле. – gilden
и как бы вы проверили свои стратегии? повторное использование в другом проекте без symfony? – meze