Я пытаюсь реализовать дизайн, управляемый доменами, в моем проекте Symfony2, и у меня возникают некоторые проблемы. Прочитав несколько статей о моделях предметной области, я обнаружил, что
К счастью, Symfony предоставляет события, но здесь это проблема - я не могу вызвать событие из своей сущности. В документации Symfony предлагается использовать DI для внедрения диспетчера в класс, который вызывает событие
http://symfony.com/doc/current /book/internals.html#passing-along-the-event-dispatcher-object
Но сущности Symfony являются новыми, а не инъекционными. Прямо сейчас я вижу два пути:
1) Предоставить событие Dispather для Entity, как это
class FooEntity
{
protected $dispatcher = null;
public function setEventDispatcher(EventDispatcher $dispatcher)
{
$this->dispatcher = $dispatcher;
}
}
2) Вызвать события из службы (не из Entity).
Ни один из этих вариантов не выглядит привлекательным, потому что мне кажется, что они нарушают идеологию модели предметной области. Не могли бы вы указать мне правильное направление, пожалуйста.