В настоящее время я пытаюсь выяснить, как наилучшим образом реализовать сущности сохраняемых доктрин ролей как отношения M2M, совместимые с FOSUserBundle. Раньше я использовал только строки с реализацией по умолчанию и сохранял ее с отображением массива доктрины.
Теперь мне нужно, чтобы роли были отдельными субъектами, поскольку мы хотим создать административный бэкэнд, где другие могут предоставлять пользователям роли.
По сути, это боль в заднице. Интерфейсы FOS созданы для строковых представлений, а не для ролевых объектов. Измените реализацию, вы сломаете много вещей, то есть команды FOS для продвижения пользователей. И трудно точно определить, какие именно части интерфейсов необходимы для правильной работы системы безопасности Symfony2.
Я мог бы переписать код управления ролями и максимально использовать сущности ролей, например ::
$user->addRole(new Role('ROLE_FOO'));
Но что нарушает команды и, возможно, существующий код?
Или продолжайте использовать:
$user->addRole('ROLE_FOO');
И пара ролей / код менеджера сущностей в addRole()
(плохой дизайн).
Я заметил, что это серая зона (ролевые сущности с FOS), и она упоминалась здесь и на платах symfony2, но не имеет достойных решений.
Кто-нибудь имел опыт или может придумать достойное решение?