持久化Zend Framework ACL列表

时间:2010-03-01 04:27:31

标签: php zend-framework acl zend-application

Zend Framework(或使用Zend_Application构建的应用程序)是否提供了持久化ACL列表的任何机制,或者该细节留给了单个系统/应用程序开发人员?

我在网上看到的大多数示例都涉及在代码中设置ACL规则。我很好奇是否有任何标准/首选方法将这些规则保存到数据库和/或文件系统中,然后自动加载它们。

4 个答案:

答案 0 :(得分:4)

上午,

那是Framework User的一部分。我们将Acl存储在.ini或.xml文件中。在复杂的项目中,我们使用Databasetable来存储角色和资源。

Zend DevZone有一个非常好的例子,可以将acl与数据库一起使用。

Zend ACL with Database

答案 1 :(得分:2)

如果ACL很复杂但是静态,您可以尝试使用Zend_Cache缓存ACL

$cache = Zend_Cache::factory( 'File', 'File',
                                 array( 'automatic_serialization' => true,
                                        'master_file' => 'MyACL.php' ),
                                 array( 'cache_dir' => CACHE_PATH )
                               ));

答案 2 :(得分:1)

您可能对此Zend_Application资源以及Joe Gornick的相应配置感兴趣:http://gist.github.com/249442

答案 3 :(得分:1)

您还没有指定寻求什么样的持久性。 对于会话期持久性,您可以在会话中存储您构建的ACL注册表(Zend_Acl对象)或Zend Registry。

我还建议在登录时或以某种形式的一次性方式构建它,以避免每页的处理过载。