Я ищу для разработки системы ACL, поддерживаемой доктриной, для моего собственного использования, хотя я борюсь с некоторыми из первоначальных соображений дизайна.
Сейчас я рассматриваю его на основе классов и уникальных идентификаторов, сохраняя их в таблице как таковой:
Table: ACL ResourceClass ResourceKey RoleClass RoleKey Permission
Очевидно, что это потребует, чтобы я исследовал классы, которые запрашиваются для получения правильных значений ResourceClass.
Мне интересно, был ли этот подход ранее или если у кого-то есть рекомендации, чтобы сделать это лучше. Другие вещи, такие как рекурсивные отношения между Ролями, также смешивают меня, поскольку я не уверен, как рекурсивно запрашивать сборку и ACL для Ресурса.
Я не большой поклонник Zend ACL, поэтому, пожалуйста, никаких предложений для этого – я знаю об этом!
Дальнейшие разъяснения будут сделаны по этому вопросу, поскольку люди взвешивают, поэтому, пожалуйста, несите меня! Этот вопрос может потребовать нескольких итераций! 😉
Я использую NestedSet для хранения иерархии ACL и кеша, чтобы ускорить процесс.
Доктрина ORM для PHP – NestedSet
Вот сообщение, которое может быть полезно также:
Zend_Acl часть 3: создание и сохранение динамических списков ACL | CodeUtopia – блог Яни Хартикайнен
(см. также две предыдущие части).