10

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

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

4

4 回答 4

4

早晨,

那是框架用户的一部分。我们将 Acl 存储在 .ini 或 .xml 文件中。在复杂的项目中,我们仍然使用数据库表来存储角色和资源。

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

Zend ACL 与数据库

于 2010-03-01T05:41:55.493 回答
2

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

$cache = Zend_Cache::factory( 'File', 'File',
                                 array( 'automatic_serialization' => true,
                                        'master_file' => 'MyACL.php' ),
                                 array( 'cache_dir' => CACHE_PATH )
                               ));
于 2010-03-02T06:42:49.803 回答
1

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

于 2010-03-02T00:48:57.353 回答
1

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

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

于 2015-12-17T21:54:18.967 回答