zend框架中的插件问题

时间:2011-04-12 13:55:53

标签: zend-framework

我创建了一个驻留在application / controllers / plugin / view.php中的插件,下面是它的内容

class Application_Controller_Plugin_View extends Zend_Controller_Plugin_Abstract
{
    public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
    {
        $frontController = Zend_Controller_Front::getInstance();
        $view = $frontController->getParam('bootstrap')->getResource('view'); 
        echo 'erace';
        exit;
        $view->doctype('XHTML1_STRICT');

        $baseUrl = $request->getBaseUrl();
        if (defined('RUNNING_FROM_ROOT')) {
            $baseUrl .= '/public'; 
            $frontController->setBaseUrl($baseUrl); 
        }
      /*  $view->headLink()->appendStylesheet($baseUrl . '/css/main.css');
        $view->headLink()->appendStylesheet($baseUrl . '/css/screen.css', 'screen');
        $view->headLink()->appendStylesheet($baseUrl . '/css/print.css', 'print');*/
    }   
}

然后我在bootstrap中注册了这个插件,如下所示:

protected function _initLayoutHelper()
    {

        $front = Zend_Controller_Front::getInstance();
        $front->registerPlugin(new Application_Controller_Plugin_View());       

    }

但它给我一个像

这样的错误
( ! ) Fatal error: Class 'Application_Controller_Plugin_View' not found in C:\wamp\www\saet_new\application\Bootstrap.php on line 42

请帮帮我。

2 个答案:

答案 0 :(得分:2)

插件是否在这里:

库/应用/控制器/插件/ view.php

我认为自定义代码属于库文件夹,并且该路径已在index.php中定义

我在引导程序中注册我的命名空间,如下所示:

$autoLoader = Zend_Loader_Autoloader::getInstance();
$autoLoader->registerNamespace('Custom_');

然后库代码可以放在文件夹库/ custom

答案 1 :(得分:1)

我认为这是因为您正在调用Default_Application_Controller_Plugin_View并且您的插件是Application_Controller_Plugin_View

你在使用模块吗?这可以解释为什么Default_会存在,虽然我认为除非设置prefixDefaultModule,否则不需要前缀。