什么';这是一个很好的PHP权限框架,允许列出资源?

什么';这是一个很好的PHP权限框架,允许列出资源?,php,frameworks,roles,acl,Php,Frameworks,Roles,Acl,我正在构建一个新的应用程序,我需要一个权限框架来配合它。 下面是我们需要it支持的一个快速示例: 对于数据模型: user ---- id role type resource ---- id name type 我们希望能够设置一个访问规则,即用户可能只知道与他们类型相同的所有资源,除非他们具有管理员角色(在这种情况下,他们可以查看所有内容)。然后,我们希望能够提取一个可搜索/可分页的列表“该用户知道的所有资源”。(假设有500000个资源。) 我曾试图将其引入Zend_acl,但尽管我认

我正在构建一个新的应用程序,我需要一个权限框架来配合它。 下面是我们需要it支持的一个快速示例:

对于数据模型:

user
----
id
role
type

resource
----
id
name
type
我们希望能够设置一个访问规则,即用户可能只知道与他们类型相同的所有资源,除非他们具有管理员角色(在这种情况下,他们可以查看所有内容)。然后,我们希望能够提取一个可搜索/可分页的列表“该用户知道的所有资源”。(假设有500000个资源。)

我曾试图将其引入Zend_acl,但尽管我认为我可以定义Zend_acl中的所有规则,但它是基于一个资源一个资源的基础上的,并且没有适当的支持从中获取资源列表,当然也不是以内存友好的方式(例如一次显示10个资源和分页)


那么,支持基于关系的规则(而不是列表)的好的PHP权限框架是什么呢?

如果可以扩展ACL以满足您的需要,您可能仍然可以使用ACL。例如,Zend_Acl允许您创建可用于覆盖基于资源的行为的。您还可以扩展Zend_Acl,以提供该用户可用的所有资源的列表。

的可能副本。我认为不会,因为我认为Acl不能满足我的需要。除非我找不到一个方法把它放进去,否则我需要一个基于规则的系统,而不是一个基于离散列表的系统。我愿意接受关于如何在诸如zend_ACL之类的ACL中实现我的目标的建议:目标是摆脱硬编码权限规则,而是在用户可修改的系统(如数据库)中定义它们。我想我可以通过断言来设计一些东西,基于ACL权限运行特定的硬编码检查,但听起来还需要进行一些规划,我宁愿依赖一个经过良好测试的框架。对不起,圣诞节假期让我分心了。重读这篇文章,我不相信zend_acl回答了我的基本问题。如何列出满足特定断言的资源?我当然不会加载所有资源,然后对每个资源运行ACL检查以构建该列表。您提到扩展Zend_Acl,但我无法找到任何方法的提示,因此我的问题仍然没有答案。我们在Zend_Acl的扩展中具有此功能。ACL在数据库中维护。当需要列表时,我们去查询数据库。虽然我知道这并不能回答你原来的问题;我们必须实现您需要的功能。