Zend 自动加载机找不到现有文件


Zend Autoloader unable to find existing file

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

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

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

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

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

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

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

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",它会在 名为 "进入.php"。

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