Zend Bootstrap新插件=致命错误

时间:2011-10-31 02:38:31

标签: zend-framework

我陷入困境并寻找解决方案以修复以下错误:

  

致命错误:第18行的/.../application/Bootstrap.php中找不到类'Plugin_AccessCheck'

我正在尝试注册一个新插件。我的代码是:

protected function _initAutoLoad()
{
    $modelLoader = new Zend_Application_Module_Autoloader(array(
                            'namespace' => '',
                            'basePath'  => APPLICATION_PATH));        

    $acl = new Application_Model_LibraryAcl();
    $auth = Zend_Auth::getInstance();

    $frontcontroller = Zend_Controller_Front::getInstance();
    $frontcontroller->registerPlugin(new Plugin_AccessCheck($acl, $auth));

    return $modelLoader;
}

(这是ZF 1.11)

1 个答案:

答案 0 :(得分:1)

要实现您要执行的操作,您需要满足以下要求(所有名称和路径都区分大小写)...

  1. 项目中某处有一个名为Plugin_AccessCheck的课程
  2. 此类位于相对路径include_path
  3. 位于library(您的应用Plugin/AccessCheck.php目录)的文件中
  4. 自动加载器已被告知应自动加载以Plugin前缀开头的类。例如,在application.ini配置文件

    autoloadernamespaces[] = "Plugin_"
    
  5. 还有其他方法可以实现这一目标,但我在这里采取阻力最小的路径。

    顺便说一句,如果这是在Bootstrap _init*方法中,请不要像这样获取前端控制器。请改用

    protected function _initPlugins()
    {
        $this->bootstrap('FrontController');
        $frontcontroller = $this->getResource('FrontController');
    
        // and the rest