gpt4 book ai didi

zend-framework - Zend 框架 : Can you do ACL without the plugins directory?

转载 作者:行者123 更新时间:2023-12-03 22:43:33 24 4
gpt4 key购买 nike

我无法理解 ZF 中的 ACL 规则,文档也不清楚。我为所有网站使用一个通用的 Zend 库。到目前为止没有问题,但现在每个演示或示例都说您应该将 ACL 类 (acl.php) 作为插件放在库目录中。 Zend/Library/My/Controller/Plugin/.

我不想这样做,因为它违背了共享通用框架目录的目的。

有没有人做过或有任何关于如何为每个网站/网络应用程序使用单独的 acl.php 类文件来完成 ACL 的想法?

谢谢

最佳答案

您不必将 acl.php 作为插件放在库目录中。自动加载器将很好地加载该类,Zend_Acl 的技巧只是用您的角色和资源启动该类的实例。

我接触 Zend Framwork 已经有一段时间了,但我会尽力引导您朝着正确的方向前进。

  1. 在您的 Bootstrap 中,创建 Zend_Acl 对象

    $acl = new Zend_Acl();//查看有关如何添加角色和资源的文档

  2. 现在在您的 Controller 目录中创建一个 Plugin 文件夹,这将允许您使用 acl 进行身份验证。

  3. 在其中创建扩展 Zend_Controller_Plugin_Abstract 的新类,为其提供正确的类名以供自动加载器选取。

  4. 将您创建的 acl 存储在注册表中,并在您的插件中覆盖 preDispatch 方法,从这里您可以访问请求和 acl(来自 zend 注册表),您可以根据需要进行验证。 (有些人将 Controller / Action 作为其他模型的资源。它非常自由。

  5. 向前端 Controller 注册您的插件。

    $frontController->registerPlugin(new My_Controller_Plugin_Acl());

这可能是其他教程所建议的(或此的变体),有时可能会有点困惑。

关于zend-framework - Zend 框架 : Can you do ACL without the plugins directory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6746314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com