В момента се опитвам да разбера най-добрия начин за прилагане на доктринни постоянни ролеви обекти като M2M връзка, съвместима с FOSUserBundle. Преди използвах само низове с изпълнението по подразбиране и го поддържах с картографиране на масив от доктрини.
Сега трябва да имам роли като отделни обекти, тъй като искаме да изградим административен бекенд, където други могат да предоставят роли на потребителите.
По принцип това е болка в задника. FOS интерфейсите са изградени за низови представяния, а не за ролеви обекти. Променете внедряването, нарушавате много неща, т.е. FOS команди за насърчаване на потребители. И е трудно да се разбере точно кои части от интерфейсите са необходими, за да може системата за сигурност symfony2 да продължи да работи правилно.
Бих могъл да пренапиша кода за управление на роли и да използвам Ролеви обекти колкото е възможно повече, напр.:
$user->addRole(new Role('ROLE_FOO'));
Но това нарушава командите и евентуално съществуващия код?
Или продължете да използвате:
$user->addRole('ROLE_FOO');
И двойка код на мениджър на роля/обект в addRole()
(лош дизайн).
Забелязах, че това е сива зона (ролеви обекти с FOS) и е споменато в таблата на symfony2 и тук, но няма прилични решения.
Някой да има опит или да измисли свястно решение?
__toString
в обекта Role и да разклоните FOSUserBundle за прехвърляне към низ, когато е необходимо... - person greg0ire   schedule 06.12.2011