我刚从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
任何帮助都非常感谢!
答案 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
。你的班级名字是什么?
我在这里测试过并且工作正常。