Как стать автором
Обновить

Комментарии 10

Думаю, имеет смысл добавить обработку postPersist события в EntityConfigurator. В этом случае в новые присоединенные к EntityManager'у сущности так же будут заинжекчены нужные сервисы, иначе при создании сущности через конструктор придется руками их добавлять.
диспетчеризация
убила мой мозг :)
Например, полиморфные сущности с разными зависимостями.
Зачем у сущностей разные зависимости?
Почему нельзя реализовать через простые сервисы?
Примеры из жизни?
Что значит через простые сервисы? Их же тоже надо как-то внедрять.

Пример: набор правил с параметрами, с единым интерфейсом выполнения/применимости, но с разными зависимостями. Правила сохраняются/загружаются как сущности Doctrine. И вот, чтобы в загруженных правилах уже были внедрены нужные сервисы и нужна такая штука.
$this->get('goodServiceWithDependencies')->makeGood($entity);
а этот $this->get откуда взялся? Все равно нужно как-то инжектить этот сервис локатор либо использовать глобальное состояние
Этот код может находится в контроллере. Если нужно вызвать метод из другого сервиса, то goodServiceWithDependencies в него просто инжектится.
Тоже думал, как же выполнять в модели логику, которая зависит от других объектов? Оказалось, что design-pattern.ru/patterns/service-layer.html будет лучшим решением в этой ситуации )) И тестируется хорошо. И не надо инжектировать зависимости в домен. В то же время сам домен может выполнять простейшую логику, которая не связана с внешним миром.
В контролере не всегда подходит.
В домене тоже могут быть сервисы. Домен который выполняет только простейшую логику — тоже не всегдя подходит. И даже если домен не связан с внешним миром, внутренние сервисы хочется мокать.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации