Zend模块Bootstrap无法加载

shi*_*va8 3 bootstrapping zend-framework module autoload

我有一个非常奇怪的情况,我的模块正在工作,但我的模块的boostrap没有被加载.

这是我的application.ini中用于模块自动加载的段:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""
Run Code Online (Sandbox Code Playgroud)

这是引导程序:

protected function _initAutoload()
    {
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => 'User_',
            'basePath'  => APPLICATION_PATH .'/modules/user',
            'resourceTypes' => array (
            'model' => array(
                'path' => 'models',
                'namespace' => 'Model',
                )
            )
        ));
    }
Run Code Online (Sandbox Code Playgroud)

我模块的结构

Application
--modules
----user
------config/
------controllers/
------models/
------views/
------Bootstrap.php
----admin
Run Code Online (Sandbox Code Playgroud)

这里的问题是没有加载User_Bootstrap.

<?php

class User_Bootstrap extends Zend_Application_Module_Bootstrap
{

    protected function _initAutoload()
    {
        Zend_Registry::set('debug', 'haha');
    }
}
Run Code Online (Sandbox Code Playgroud)

通过在任何控制器上执行Zend_Registry :: get('debug'),它无法识别该密钥是在模块引导程序中设置的.实际上,User_Bootstrap中的任何语法错误都不起作用.

我不知道为什么User_Bootstrap没有被自动加载.这让我抓狂,因为我已经研究了5个小时甚至无法获得一篇关于这个案例的博文...

说到这些,我的模型和控制器类正在自动加载.

Phi*_*hil 7

试试以下......

  1. 更改您application.ini要使用的文件

    ; lose the quotes
    resources.modules[] = 
    
    Run Code Online (Sandbox Code Playgroud)

    http://framework.zend.com/manual/en/zend.application.available-resources.html#zend.application.available-resources.modules

  2. _initAutoload()从Application Bootstrap类中删除该方法.您不需要这个,因为模块引导程序会自动为您的User_类创建资源加载器