stalxed
Новичок
Есть два бандла(задачу намеренно упрощаю для форума).
AcmeUserBundle
AcmeBlogBundle
В AcmeUserBundle есть сервис RoleManager, у класса этого сервиса есть метод addRole, который принимает класс с интерфейсом Symfony\Component\Security\Core\Role\RoleInterface или обычный string.
Задача заключается в том, как этому сервису сообщить роли(вызвать несколько раз addRole сервиса RoleManager), которые есть в AcmeBlogBundle, т.е. сделать зависимость AcmeBlogBundle от AcmeUserBundle, но избежать двухстороннюю зависимость.
Сам вижу лишь два решения, которые меня не удовлетворяют:
1) указать все роли в главном конфиге, но это будет что-то вроде
acme_user:
roles:
one
two
но хотелось бы всё таки отдать эту задачу конкретным бандлам(в случае выше AcmeBlogBundle)
2) использовать теги в контейнере зависимости, т.е. сделать класс роль, сделать множество сервисов(1 сервис - 1 роль) из этого класса, и в каждом сервисе тег, а дальше в бандле AcmeUserBundle отлавливать теги, но это множество объектов и множество сервисов, здесь уже откровенно боюсь за распухший конфиг и производительность.
Чёрт, вроде бы тривиальная задача, но не знаю как легко её решить. Помогите пожалуйста.
AcmeUserBundle
AcmeBlogBundle
В AcmeUserBundle есть сервис RoleManager, у класса этого сервиса есть метод addRole, который принимает класс с интерфейсом Symfony\Component\Security\Core\Role\RoleInterface или обычный string.
Задача заключается в том, как этому сервису сообщить роли(вызвать несколько раз addRole сервиса RoleManager), которые есть в AcmeBlogBundle, т.е. сделать зависимость AcmeBlogBundle от AcmeUserBundle, но избежать двухстороннюю зависимость.
Сам вижу лишь два решения, которые меня не удовлетворяют:
1) указать все роли в главном конфиге, но это будет что-то вроде
acme_user:
roles:
one
two
но хотелось бы всё таки отдать эту задачу конкретным бандлам(в случае выше AcmeBlogBundle)
2) использовать теги в контейнере зависимости, т.е. сделать класс роль, сделать множество сервисов(1 сервис - 1 роль) из этого класса, и в каждом сервисе тег, а дальше в бандле AcmeUserBundle отлавливать теги, но это множество объектов и множество сервисов, здесь уже откровенно боюсь за распухший конфиг и производительность.
Чёрт, вроде бы тривиальная задача, но не знаю как легко её решить. Помогите пожалуйста.