Frontcontroller插件无法加载

时间:2010-12-04 00:19:00

标签: zend-framework plugins front-controller

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

在我的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 个答案:

答案 0 :(得分:1)

是吗?

plugins/Routes.php

Zend期待

Plugin/Routes.php

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

My_Class_Something

将是:

My/Class/Something.php

答案 1 :(得分:1)

我曾经有过:

resources.frontController.plugins[] = "Dagho_Controller_Plugin_Auth"

它为我工作非常好

更新:没有什么可以看到下面的这些行和doctrine autoloader

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

        return $autoloader;
    }

答案 2 :(得分:1)

如果无效,请尝试使用自动装带器。

在bootstrap类中添加此代码

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());
}

答案 3 :(得分:0)

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

缺少的是您需要应用程序命名空间,否则它将无法在1.11中运行

app.ini

resources.frontController.plugins.routes = "Application_Plugin_Routes"

插件

class Application_Plugin_Routes extends Zend_Controller_Plugin_Abstract { }

可以正常工作:)