我正在开发一个带有一些模块的 Zend Framework MVC 应用程序,例如 Users 模块。有一个模型类名称“Users_Model_User”,可以在任何模块/ Controller 操作中使用。但我需要在应用程序 Bootstrap 类中使用该模型的实例,但出现异常:
Fatal error: Class 'Users_Model_User' not found in /my/path/...
我为每个模块都有一个 Bootstrap 类:
class Users_Bootstrap extends Zend_Application_Module_Bootstrap {
protected function _initAutoloader() {
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Users_',
'basePath' => APPLICATION_PATH . '/modules/users'
));
return $autoloader;
}
}
正如我所说,这些模块工作得很好(接收请求、处理和返回响应)。我认为这工作得很好,因为模块引导类负责加载默认模块资源,例如模型类。但主要的 Bootstrap 类似乎缺乏对“Users”模块模型类的访问。
最佳答案
Users_Bootstrap
在应用程序 Bootstrap 之后执行,这意味着您的 _initAutoloader()
方法尚未在应用程序 Bootstrap 中执行。
解决方案可能是将代码从 _initAutoloader()
移至主 Bootstrap 。这将解决您的问题!您也可以将主 Bootstrap 中的代码片段表示为模块 Bootstrap ,这对我来说更有意义。请注意,所有模块 Bootstrap 始终都会被调用,与当前请求的模块无关。
另外,给大家分享一下this article关于ZF的bootstrapping过程,希望对你有帮助;)
关于zend-framework - 如何在基于 Zend Framework 的应用程序中的应用程序 Bootstrap 中使用模块中的模型类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10205124/