大家好,我从 Zend 开始,并试图了解它的工作方式(到达那里),并且使用 Acl 类,人们似乎在一个文件中声明了所有角色和资源。现在对我来说,如果该人仅以基本用户身份登录,甚至只是网站的访客/访客,这似乎有点浪费系统资源。所以我在想是否有可能有不同的类来设置角色取决于当前用户的角色/资源。
我目前的想法是在引导程序中对角色使用 switch/case,并根据角色名称加载单个 Acl 类(例如,'visitor' => 'Model_VisitorAcl'、'users' => 'Model_UserAcl' 和 ' admin' => 'Model_AdminAcl'),每个都有一个对应的类文件。然后在类文件中为每个文件做一些事情。这是可行的,目前我可以将我的所有“管理员”acls 定义为一个(通过 admin-user-visitor 的权限层次结构回溯),然后在“用户”中具有“用户”-“访问者”角色和资源。
但是,这似乎不是最好的方法,好像我想更改“用户”的角色权限,我需要为“用户”和“管理员”更改它。这显然不是 2 个角色的问题,但在更大的系统上显然是。
所以我尝试了类似的东西
类 Model_AdminAcl 扩展 Zend_Acl{ 函数 __construct(){ $d = new Model_UserAcl(); //定义管理员角色和权限,从角色继承 //在Model_UserAcl中设置 } }
尝试运行 Model_UserAcl 构造函数,从而设置角色 'user',但这似乎不起作用,抛出“未捕获的异常 'Zend_Acl_Role_Registry_Exception' 和消息 'Parent Role id 'users' 不存在'”错误。
那么下一步是什么?每个模块都有单独的包含文件,并且需要的类是否根据需要包含它们?
还是我只是在这个问题上大发雷霆?
谢谢,心理学