0

当我在 zend frameworker 中使用前端控制器插件时,它似乎在自动加载器之前运行。我该怎么做?

在我的 app.ini

resources.frontController.plugins.routes = "Plugin_Routes"

插件/Routes.php

class Plugin_Routes extends Zend_Controller_Plugin_Abstract {
}

错误信息..

致命错误:在第 111 行的 /usr/share/php/Zend/Application/Resource/Frontcontroller.php 中找不到类“Plugin_Routes”

根本没有包含路径?

4

4 回答 4

1

是对的吗?

plugins/Routes.php

Zend 期望

Plugin/Routes.php

因为自动加载器会使用类名来找到正确的文件夹。

My_Class_Something

将会:

My/Class/Something.php
于 2010-12-04T01:59:48.343 回答
1

我曾经有 :

resources.frontController.plugins[] = "Dagho_Controller_Plugin_Auth"

它对我来说非常好

更新:没有什么可看中的只是下面的这些行和学说自动加载器

protected function _initAutoload() {
        $autoloader = new Zend_Application_Module_Autoloader(array(
                    'namespace' => 'Default',
                    'basePath' => dirname(__FILE__),
                ));

        return $autoloader;
    }
于 2010-12-04T10:42:37.603 回答
1

如果没有任何效果,请尝试使用自动加载器。

在引导类中添加此代码

protected function _initBlablablaPlugin(){

    $autoloader = Zend_Loader_Autoloader::getInstance();
    //If your plugin is placed in the /library/My/Plugin/Blablabla, then register the "My_" namespace
    $autoloader->registerNamespace('My_');

    $frontController = Zend_Controller_Front::getInstance();
    $frontController->registerPlugin(new My_Plugin_Authorize());
}
于 2012-01-31T18:53:44.987 回答
0

好的,手册似乎是错误的或至少不清楚: http: //framework.zend.com/manual/1.11/en/zend.controller.plugins.html

缺少的是您需要应用程序命名空间,否则它将在 1.11 中不起作用

应用程序.ini

resources.frontController.plugins.routes = "Application_Plugin_Routes"

插入

class Application_Plugin_Routes extends Zend_Controller_Plugin_Abstract { }

可以正常工作:)

于 2010-12-04T15:12:53.247 回答