如何使Zend_acl在ZF 1.12上运行

时间:2013-02-07 20:52:31

标签: php zend-framework

我找到了指导here如何从Zend Acl开始,通过最佳答案的步骤,但我已经陷入了这个操作:

  

最后一步是加载configAcl.php并注册AuthPlugin   在bootstrap文件中(可能是index.php)。

当我开始申请时,它会告诉我

  

致命错误:第28行的C:\ Program Files(x86)\ Apache Software Foundation \ Apache2.2 \ htdocs \ myproject \ public \ index.php中找不到类'AuthPlugin'

但我已将此插件放在applications / plugins文件夹中。我是Zend Framework的新手并使用v.1.12(因为我没有找到如何在新版本中创建项目:bin文件夹中的命令行应用程序丢失了。)

也许我必须编辑我的Bootstrap.php文件,但我不知道如何。我发现的每个指令都适用于另一个版本的框架,因为它们的public / index.php中的代码与我的非常不同。

3 个答案:

答案 0 :(得分:0)

所以坐了一个小时后我终于找到了怎么做。老实说,如果只有我的firefox没有显示错误,我的应用程序页面重定向递归,我会更快地找到我的问题的答案。 firefox重启后问题消失了。那就是答案: 在您的引导程序中使用以下代码。

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initAutoload() {
    require_once '../application/plugins/AuthPlugin.php';
    require_once '../application/configs/configAcl.php';
}

protected function _initControllerPlugins()
{

$frontController = Zend_Controller_Front::getInstance();
$frontController->registerPlugin(new AuthPlugin());

}
}

希望像我一样在Zend Framework中为这些新手提供帮助。

答案 1 :(得分:0)

我知道这是一个非常古老的问题,但我留下了我发现的答案,万一有人偶然发现这个问题。

虽然您发布的答案有效,但我通过application.ini找到了另一个答案。 ZF遵循命名标准:Plugin_ViewSetup解析为Plugin / ViewSetup.php。对于插件,ZF会自动查看“库的路径”,这意味着它可以查看库的目录(Zend库所在的目录)。所以插件应该如下:library / Plugin / ViewSetup.php ...那是一个场景。然后,您在application.ini中所要做的就是添加以下内容:

autoloaderNamespaces[] = "Plugin_"
resources.frontController.plugins.ViewSetup = "Plugin_ViewSetup"

翻译成您的案例将是:

autoloaderNamespaces[] = "Plugins_"
resources.frontController.plugins.AuthPlugin = "Plugins_AuthPlugin"

你的图书馆结构应该是:

library/Plugins/AuthPlugin.php

希望这对任何在这里磕磕绊绊的人都有帮助!

答案 2 :(得分:0)

Require_once不适用于我的项目..包含插件的任何其他方式