Comments 10
Думаю, имеет смысл добавить обработку postPersist события в EntityConfigurator. В этом случае в новые присоединенные к EntityManager'у сущности так же будут заинжекчены нужные сервисы, иначе при создании сущности через конструктор придется руками их добавлять.
диспетчеризацияубила мой мозг :)
Зачем?
Например, полиморфные сущности с разными зависимостями.
Зачем у сущностей разные зависимости?
Почему нельзя реализовать через простые сервисы?
Примеры из жизни?
Почему нельзя реализовать через простые сервисы?
Примеры из жизни?
Что значит через простые сервисы? Их же тоже надо как-то внедрять.
Пример: набор правил с параметрами, с единым интерфейсом выполнения/применимости, но с разными зависимостями. Правила сохраняются/загружаются как сущности Doctrine. И вот, чтобы в загруженных правилах уже были внедрены нужные сервисы и нужна такая штука.
Пример: набор правил с параметрами, с единым интерфейсом выполнения/применимости, но с разными зависимостями. Правила сохраняются/загружаются как сущности Doctrine. И вот, чтобы в загруженных правилах уже были внедрены нужные сервисы и нужна такая штука.
$this->get('goodServiceWithDependencies')->makeGood($entity);
а этот $this->get откуда взялся? Все равно нужно как-то инжектить этот сервис локатор либо использовать глобальное состояние
Этот код может находится в контроллере. Если нужно вызвать метод из другого сервиса, то goodServiceWithDependencies в него просто инжектится.
Тоже думал, как же выполнять в модели логику, которая зависит от других объектов? Оказалось, что design-pattern.ru/patterns/service-layer.html будет лучшим решением в этой ситуации )) И тестируется хорошо. И не надо инжектировать зависимости в домен. В то же время сам домен может выполнять простейшую логику, которая не связана с внешним миром.
Тоже думал, как же выполнять в модели логику, которая зависит от других объектов? Оказалось, что design-pattern.ru/patterns/service-layer.html будет лучшим решением в этой ситуации )) И тестируется хорошо. И не надо инжектировать зависимости в домен. В то же время сам домен может выполнять простейшую логику, которая не связана с внешним миром.
Sign up to leave a comment.
Внедрение зависимостей в сущности Doctrine при помощи Symfony Dependency Injection Component