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