Zend Framework奇怪的类加载

时间:2011-12-04 13:09:57

标签: zend-framework

我无法理解一些奇怪的事情。 我有文件夹结构:

application/
  controllers/
  forms/
  models/
  views/

我将Service文件夹添加到'models'文件夹并在其中创建文件:

models/
  Service/
    User.php

模型/服务/ user.php的:

<?php

  class Model_Service_User {}

在IndexController中(用于测试):

....
$test = new Model_Service_User; // It's works
....

但是我不明白为什么如果我将“Mapper”文件夹添加为“服务”文件夹,它就不起作用..

models/
  Mapper/
    User.php

模型/映射器/ user.php的:

<?php

  class Model_Mapper_User {}

在IndexController中:

....
$test = new Model_Mapper_User; // Fatal error: Class 'Model_Mapper_User' not found
....

我尝试创建另一个文件夹,如“地图”,“地图”等等,它们正常运行。但是Mapper有什么问题?

1 个答案:

答案 0 :(得分:4)

这是因为Zend_Application_Module_Autoloader中已定义了Model_Mapper的资源自动加载器定义。

自动加载器在/models/mappers中查找这些类文件。

如果您要删除此映射,请在Bootstrap课程中尝试此操作...

protected function _initResourceAutoloader()
{
    $autoloader = $this->getResourceLoader();
    $autoloader->removeResourceType('mappers');
}

...或者你可以把你的地图制作者放在models/mappers