如何解决如何在application.ini中为AutoLoader配置默认名称空间和模型位置?
| 使用PHP 5.3和Zend Framework 1.11.7,我一直在尝试配置AutoLoader以自动加载驻留在默认目录application / models中的Model类(对于Zend_Db)。 我发现以下解决方案: 我可以在Bootstrap.php中添加以下功能:protected function _initLoader()
{
$loader = new Zend_Loader_Autoloader_Resource (array (
\'basePath\' => APPLICATION_PATH,\'namespace\' => \'Default\'));
$loader -> addResourceType ( \'model\',\'models\',\'Model\');
}
似乎应该在application.ini中轻松设置该选项。所以我的问题是,是否有任何我可以添加到application.ini的相关指令可以执行与函数执行的相同任务?
更新
设置appnamespace指令后,我仍然需要添加以下功能:
protected function _initLoader()
{
$loader = new Zend_Loader_Autoloader_Resource (array (
\'basePath\' => APPLICATION_PATH));
$loader -> addResourceType ( \'model\',\'Model\');
}
否则它将找不到我的模型类。
唯一的区别是我删除了属性“名称空间”。
我可以添加任何其他属性以完全删除此功能?
谢谢! :)
克菲尔
解决方法
在application.ini中,您应该设置
appnamespace = \"Application\"
resources.frontController.controllerDirectory = APPLICATION_PATH \"/controllers\"
appnamespace是用于模型的前缀,因此,如果模型为\“ Default_Model_User \”,则appnamespace将为\'Default \';如果模型为\“ Application_Model_User \”,则appnamespace将为\“ application \”
这两个指令应理清默认应用程序的自动加载
您也可以在bootstrap中使用它来设置它,您需要使用Zend_Application_Module_AutoLoader:
protected function _initDefaultModuleAutoloader()
{
$this->_resourceLoader = new Zend_Application_Module_Autoloader(array(
\'namespace\' => \'Application\',\'basePath\' => APPLICATION_PATH,));
}
, 将以下内容放入您的application.ini中
appnamespace = \"MyNamespace\"
然后,它将使用名为MyNamespace_Model_MyModel的类将文件加载到您的application / models目录中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。