我有一个非常奇怪的情况,我的模块正在工作,但我的模块的 boostrap 没有被加载。
这是我的 application.ini 中用于模块自动加载的段:
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""
这是 Bootstrap :
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',
)
)
));
}
我的模块结构
Application
--modules
----user
------config/
------controllers/
------models/
------views/
------Bootstrap.php
----admin
这里的问题是 User_Bootstrap 没有被加载。
<?php
class User_Bootstrap extends Zend_Application_Module_Bootstrap
{
protected function _initAutoload()
{
Zend_Registry::set('debug', 'haha');
}
}
通过在任何 Controller 上执行 Zend_Registry::get('debug'),它不会识别出在模块 Bootstrap 中设置的 key 。事实上,User_Bootstrap 中的任何语法错误都不起作用。
我不知道为什么 User_Bootstrap 没有被自动加载。这让我发疯了,因为我已经研究了 5 个小时,甚至无法获得接近涵盖此案例的博客文章...
说到这里,我的模型和 Controller 类正在自动加载。
最佳答案
试试下面...
更改您的
application.ini
文件以使用; lose the quotes resources.modules[] =
从您的应用程序
Bootstrap
类中删除_initAutoload()
方法。你不需要这个,因为模块 Bootstrap 会自动为你的User_
类创建资源加载器
关于zend-framework - Zend Module Bootstrap 不加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9371615/