使用Doctrine构建通用OO ACL

时间:2010-07-19 13:59:32

标签: php mysql oop doctrine acl

我正在设计一个供我自己使用的学说支持的ACL系统,尽管我正在努力解决一些初步的设计问题。

现在我正在考虑根据类和唯一标识符创建它,将它们存储在表中:

Table: ACL
    ResourceClass
    ResourceKey
    RoleClass
    RoleKey
    Permission

显然,这将要求我对正在查询的类进行内省以获得正确的ResourceClass值。

我想知道这种方法之前是否已经完成,或者是否有人建议以这种方式做到这一点。 Roles之间的递归关系等其他因素也让我感到困惑,因为我不确定如何递归查询构建资源的ACL和ACL。

我不是Zend ACL的忠实粉丝,所以请不要提出任何建议 - 我知道了!

当人们称重时,将对这个问题作进一步的澄清,所以请耐心等待!这个问题本身可能需要几次迭代! ;)

1 个答案:

答案 0 :(得分:3)

我使用NestedSet来存储ACL层次结构和缓存以加快速度。

Doctrine ORM for PHP - NestedSet

这是一篇也很有用的文章:

Zend_Acl part 3: creating and storing dynamic ACLs | CodeUtopia - The blog of Jani Hartikainen

(看看前面两个部分)。