2014-07-07 48 views
2

我有几个模块的Zend Framework 1.12应用程序。迄今为止,一切运作良好。但是我想将映射器添加到我的应用程序中,Zend Framework找不到映射器类。该项目的Zend Framework 1.12 - 无法加载模块的模型

结构:

-application 
    -modules 
    -api 
    -otms 
     -models 
     -Mapper 
      FormToOnix2.php 
     -FeedFile.php 

映射文件的样子:

class Otms_Model_Mapper_FormToOnix2 
{ 
    ... 
} 

在我的application.ini添加 “Otms_” 前缀,自动加载:

autoloaderNamespaces.otms[] = "Otms_" 

但是,当我尝试从控制器创建映射器对象

$test = new Otms_Model_Mapper_FormToOnix2(); 

我收到以下错误消息

include_once(Otms/Model/Mapper/FormToOnix2.php): failed to open stream: No such file or directory in <b>/cloudware/library/Zend/Loader.php</b> on line 146 

与此同时,如果我尝试创建另一个OTMS模型的对象,如:

$file = new Otms_Model_FeedFile(); 

,一切工作正常。如何解决映射器加载问题?

回答

2

好的,我读了Zend Documentation关于自动加载器和模块资源加载器。所以,

Zend Framework ships with a concrete implementation of Zend_Loader_Autoloader_Resource    
that contains resource type mappings that cover the default recommended 
directory structure for Zend Framework MVC applications. 

而这种映射方案是这样的:

forms/  => Form 
models/  => Model 
    DbTable/ => Model_DbTable 
    mappers/ => Model_Mapper 
plugins/  => Plugin 
services/ => Service 
views/ 
    helpers => View_Helper 
    filters => View_Filter 

所以,如果你婉与映射器添加目录,你应该命名为“映射器”而不是“映射”。这解决了我的问题。