3

我刚刚从 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);

我需要自动加载的文件大多没有命名空间(因为它是一个来自预命名空间的大型项目)。它们位于以下目录中:

  • /应用程序/控制器
  • /常见/模型
  • /图书馆
  • /小贩

该站点似乎运行良好,除了它找不到 /library/Form.php
它曾经能够,但现在不行了。如果我添加一个 require_once 'library/Form.php',它会起作用,但这不是必需的,而且我担心如果我在某些地方开始这样做,我需要放弃自动加载器和硬编码所有包括。我认为添加“setFallbackAutoloader(true)”,并在我的包含路径中添加“库”可以解决它,但它没有。

我的包含路径是:
.:/Users/lofye/Documents/htdocs/mysitename/vendor
:/Users/lofye/Documents/htdocs/mysitename/common
:/Users/lofye/Documents/htdocs/mysitename/common/models
:/Users /lofye/Documents/htdocs/mysitename/library
:/Users/lofye/Documents/htdocs/mysitename

非常感谢任何帮助!

4

3 回答 3

1

您的自动加载器只会尝试加载以MySiteName_. 尝试添加Form为命名空间?

$loader->registerNamespace('Form');
于 2009-12-12T05:24:22.253 回答
0

你说如果你这样做,它会起作用:

require_once 'library/Form.php';

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

require_once 'Form.php';

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

于 2009-12-09T14:15:33.320 回答
0

文件中的类名library/Form.php应该是Form. 你的班级名称是什么?

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

于 2009-12-09T16:18:07.707 回答