不确定我在这里做错了什么,我认为我不得不将我的PHP ini设置更改为
include_path = ".;c:\Program Files (x86)\WAMP\www\Zend\"
但它不起作用。
在我的剧本中,我只是:
require_once "Date.php";
但是得到错误:
Warning: require_once(Zend/Date/DateObject.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files (x86)\WAMP\www\Zend\Date.php on line 25
Fatal error: require_once() [function.require]: Failed opening required 'Zend/Date/DateObject.php' (include_path='.;c:\Program Files (x86)\WAMP\www\Zend\') in C:\Program Files (x86)\WAMP\www\Zend\Date.php on line 25
非常感谢任何有关我所做错事的见解。
感谢。
答案 0 :(得分:2)
您不应将Zend Framework目录添加到包含路径。您应该将父文件夹添加到包含路径。
因此,include_path = ".;c:\Program Files (x86)\WAMP\www\Zend\"
将成为include_path = ".;c:\Program Files (x86)\WAMP\www\"
。
在设置这样的包含路径后,您应该使用require_once 'Zend/Date.php'
而不是require_once 'Date.php'
。这是因为框架内部仍然存在大量的require调用,每个调用都指向Zend/<classname>
。
答案 1 :(得分:1)
您的包含路径错误 - 您可以手动定义它,或者(更好)更改您的php.ini以添加您需要的包含位置...
http://www.geeksengine.com/article/php-include-path.html
编辑:这些可能对您有所帮助
答案 2 :(得分:1)
此处的每个人都建议您将库添加到包含路径中。我实际上不同意这一点。大多数托管服务提供商在包含路径上没有ZF,并且不允许您将其添加到一个。那么为什么要在开发环境中设置它呢?只是为了改变生产?
我建议你在root中创建一个库文件夹;将ZF放在那里,然后将你的应用程序添加到包含路径中。
E.g。 C:\瓦帕\ WWW \库\ Zend的
然后,对于每个应用程序,在index.php中添加库(您将再添加一个文件夹):
set_include_path(implode(PATH_SEPARATOR, array(
realpath(dirname(__FILE__) . '/../../library'),
get_include_path(),
)));
这使您可以轻松更新ZF库。 它还允许您轻松复制/调试您的项目,而不包括ZF框架。 大多数人都有自己的风格。我同意大多数人的意见,你必须包括库目录而不是Zend目录。
答案 3 :(得分:0)
设置包含路径:
include_path = ".;c:\Program Files (x86)\WAMP\www\"
后:
require_once "Zend/Date.php";
答案 4 :(得分:0)
您不应将Zend /目录添加到包含路径,而是将库文件夹的根目录添加:
如果你的Zend库在www /
中您的包含路径必须为:c:\Program Files (x86)\WAMP\www\
但是,如果ZF在Zend / library /中,它应该是:
c:\Program Files (x86)\WAMP\www\Zend\library\
这是因为文件是如何需要的。
Zend_Date需要Zend /中的Zend / Date / DateObject,因此您需要包含顶级目录。
请注意,如果您需要其他Zf类并且不想包含/需要它们,您也可以使用自动加载器为您完成工作。
require_once 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
允许你执行$date = new Zend_Date();
而无需手动任何文件(当然除了Loader!)