新的Zend_Loader_Autoloader找不到文件

时间:2009-12-09 06:04:22

标签: zend-framework include-path zend-autoloader zend-loader

我刚从ZF 1.7升级到ZF 1.9,几乎一切正常......除了Autoloader。

旧:

require_once('Zend/Loader.php');  
Zend_Loader::registerAutoload();

新:

require_once 'Zend/Loader/Autoloader.php';  
$loader = Zend_Loader_Autoloader::getInstance();  
$loader->registerNamespace('MySiteName_');
$loader->setFallbackAutoloader(true);

我需要自动加载的文件大部分都不是命名空间(因为它是来自pre-namespacing的大型项目)。它们位于以下目录中:

  • /应用/控制器
  • /普通/模型
  • /文库
  • /供应商的

该网站似乎工作正常,除了它找不到/library/Form.php
它曾经能够,但不再是。它可以添加一个require_once'library / Form.php',但这不是必需的,我担心如果我在某些地方开始这样做,我将需要放弃自动加载器和硬编码全部包括。我想添加“setFallbackAutoloader(true)”,加上我的include路径中的“library”会修复它,但它没有。

我的包含路径是:
:/用户/ lofye /文档/ htdocs中/ mysitename /供应商
:/用户/ lofye /文档/ htdocs中/ mysitename /共同
:/用户/ lofye /文档/ htdocs中/ mysitename /普通/型号
:/用户/ lofye /文档/ htdocs中/ mysitename /库
:/用户/ lofye /文档/ htdocs中/ mysitename

任何帮助都非常感谢!

3 个答案:

答案 0 :(得分:1)

您的自动加载器只会尝试加载以MySiteName_开头的类。尝试添加Form作为命名空间吗?

$loader->registerNamespace('Form');

答案 1 :(得分:0)

你说如果你这样做会有效:

require_once 'library/Form.php';

但是,如果您的库路径包含在内,那么您应该像自动加载器那样指定,如下所示:

require_once 'Form.php';

尝试输入require_once'Form.php';进入你的脚本。它炸吗?然后,您的包含路径没有/ library,需要修复。

答案 2 :(得分:0)

文件library/Form.php中的类名应为Form。你的班级名字是什么?

我在这里测试过并且工作正常。