0

我在这里没有想法了。实际上,我的 Zend 安装(Windows 上的 XAMPP)位于D:\xampp\htdocs\newsite\zend\library.

到目前为止,正如 zend.php 中所报告的(位于D:\xampp\htdocs\newsite并从127.0.0.1/newsite/zend.php.

.;D:\xampp\php\PEAR
.;D:\xampp\php\PEAR;/zend/library
.;D:\xampp\php\PEAR;D:\xampp\htdocs\newsite\zend\library
.;D:\xampp\php\PEAR;D:/xampp/htdocs/newsite/zend/library
.;D:/xampp/htdocs/newsite/zend/library
.;D:\xampp\htdocs\newsite\zend\library
D:\xampp\htdocs\newsite\zend\library
.;./zend/library;D:\xampp\php\PEAR;D:\xampp\htdocs\newsite\zend\library
.;./zend/library;D:\xampp\php\PEAR;D:\xampp\htdocs\newsite\zend\library;/zend/library
.;./zend/library;D:\xampp\php\PEAR;D:\xampp\htdocs\newsite\zend\library;D:/xampp/htdocs/newsite/zend/library

编辑:是的,我通过 get_include_path() 获得了以上所有内容。我在 PHP 5.3.8 上。

4

2 回答 2

1

假设您没有尝试使用自动加载,这将是排除自动加载器问题的好主意。

由于 include_path 返回 ".;D:\xampp\php\PEAR;D:\xampp\htdocs\newsite\zend\library" 我希望一个简单的包含工作。

假设您使用的是 ZF2,如果返回上述包含路径,则此测试不应出错:

<?php
include ('Zend\Version\Version.php');

如果确实出错,请尝试使用完整路径来验证它是包含路径还是导致文件不被包含的其他内容。

<?php
include ('D:\xampp\htdocs\newsite\zend\library\Zend\Version\Version.php');

如果您的测试比上述更复杂,则可能不是包含路径出错了。您可以发布失败的代码吗?

此外,您可能会考虑安装 ZF2 Skeleton App,它显示了当前设置自动加载、命名空间等的最佳实践。

https://github.com/zendframework/ZendSkeletonApplication

于 2012-11-04T21:05:04.410 回答
0

在使用 Zend 库时,请确保

1)您在包含路径中有 Zend 文件夹的父目录 D:\xampp\htdocs\newsite\zend\library 必须在包含路径中,而不是 D:\xampp\htdocs\newsite\zend\library\Zend

2) PHP 没有在安全模式下运行,PHP 也更新到 5.2+ 或 5.3+,如果打开 apc,它必须关闭 apc.include_once_override。

如果仍然无法正常工作,请通过打印 get_include_path() 或 phpinfo() 进行检查;

应该是这样的。

于 2012-11-04T15:44:27.753 回答