0

我正在使用 PHP 5.3 和 Zend Framework 1.11.7 编写一个 PHP 应用程序。

我使用以下命令创建了模型资源:

protected function _initLoader() 
{

     $loader = new Zend_Application_Module_Autoloader(array(
        'namespace' => 'Default',
        'basePath'  => APPLICATION_PATH,
    ));

    $loader -> addResourceType ( 'model', 'models', 'Model'); 
}

现在,每当我使用以它开头的类名时,Default_Model_都会在模型目录中搜索。在模型目录下,我有一个名为 mapper 的目录。

Default_Model_Mapper_每当使用一个以从模型/映射器自动加载它开始的类时,我该如何配置它?

4

3 回答 3

1

ZF 应该会自动找到模型下的任何目录。此外,您也不需要包含默认模块。

Model_
Model_Mapper_

为了设置 ZF 模块,我的 application.ini 文件中有以下两行代码

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] =

以下是我的引导程序

protected function _initModuleAutoload()
    {
        $modelLoader = new Zend_Application_Module_Autoloader(array(
                'namespace' => '',
                'basePath' => APPLICATION_PATH . '/modules/default'));
         return $modelLoader;
    }

我希望这会有所帮助

亲切的问候

加里

于 2011-06-18T15:15:51.017 回答
1

添加这个:

$loader->addResourceType('mapper', 'models/mapper', 'Model_Mapper_');

声明这两种资源类型的顺序可能很重要。所以尝试两种方式;其中一个应该工作。

于 2011-06-18T15:38:19.293 回答
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',
            ),
....
于 2011-11-10T08:25:15.567 回答