我正在编写一个PHP应用程序 PHP 5.3和Zend Framework 1.11.7。
我使用以下命令创建了模型资源:
protected function _initLoader()
{
$loader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Default',
'basePath' => APPLICATION_PATH,
));
$loader -> addResourceType ( 'model', 'models', 'Model');
}
现在每当我使用以Default_Model_
开头的类名时,它就会在models目录中搜索。在models目录下,我有一个名为mapper的目录。
如果每次使用以Default_Model_Mapper_
开头的类来自模型/映射器自动加载时,我该怎么配置?
答案 0 :(得分:1)
ZF应该自动在模型下找到任何目录。此外,您也不需要包含默认模块。
Model_
Model_Mapper_
另外,为了设置ZF模块,我在application.ini文件中有以下两行代码
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] =
以下是我的bootstrap
protected function _initModuleAutoload()
{
$modelLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => '',
'basePath' => APPLICATION_PATH . '/modules/default'));
return $modelLoader;
}
我希望这有一些帮助
亲切的问候
加里
答案 1 :(得分:1)
添加以下内容:
$loader->addResourceType('mapper', 'models/mapper', 'Model_Mapper_');
声明两种资源类型的顺序可能很重要。所以尝试两种方式;其中一个应该工作。
答案 2 :(得分:1)
默认情况下,它在initDefaultResourceTypes中的Zend_Application_Module_Autoloader中设置:
$this->addResourceTypes(array(
'dbtable' => array(
'namespace' => 'Model_DbTable',
'path' => 'models/DbTable',
),
'mappers' => array(
'namespace' => 'Model_Mapper',
'path' => 'models/mappers',
),
'form' => array(
'namespace' => 'Form',
'path' => 'forms',
),
....