Zend Autoloader无法找到现有文件

时间:2012-05-24 07:44:02

标签: php zend-framework zend-autoloader

我的Zend网站遇到了一个不寻常的自动加载问题。到目前为止,自动加载一直是一种享受。现在,我添加了一个新文件,项目和自动加载只是找不到它。我已经将问题减少到最小的测试用例,并且想知道是否有人可以帮助我。

在我的网站中,我有一个通常的目录结构,如下所示:

site/
  application/...
  library/
    Zend/...
    PHPUnit/...
    Ext/
      Extras/
        Test.php
      Service/
        Test.php

我已经正确设置了自动加载(根据StackOverflow上的其他有用注释)并注册了Ext_名称空间,这可以通过正确实例化Ext_Extras_Test来证明。

当我尝试实例化Ext_Service_Test时出现问题。自动加载“无法打开流”。我检查了正确的拼写,使用findls和文件资源管理器列出了目录内容,以确保文件存在于正确的位置。

我只是无法得到它& ^ %%£*找到该文件!有人有任何线索吗?

1 个答案:

答案 0 :(得分:1)

发现它正在尝试覆盖资源自动加载器,即使它未指定我很确定这会影响所有名称空间:

  

42.3.2。模块资源自动加载器Zend框架附带Zend_Loader_Autoloader_Resource的具体实现,   包含涵盖建议的默认值的资源类型映射   Zend Framework MVC应用程序的目录结构。这个装载机,   Zend_Application_Module_Autoloader附带以下映射:

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

例如,如果您的模块的前缀为“Blog_”,那么   试图实例化“Blog_Form_Entry”类,它会查看   资源目录的“forms /”子目录,用于命名的文件   “Entry.php”。

     

将模块引导与Zend_Application一起使用时,是一个实例   默认情况下将为每个创建Zend_Application_Module_Autoloader   离散模块,允许您自动加载模块资源。