我自己花了很多时间对此进行故障排除,但我所阅读的内容都没有解决我的问题,所以我希望我能在这里得到一些帮助。
所以无论如何,我已经编写了一个 PHP 脚本,它提供了各种功能来连接 Google 日历。当我使用一些内联测试代码直接运行这个脚本来调用我的函数时,一切运行正常。但是,当我使用“require_once”从其他脚本调用该函数以包含它时,我收到以下错误:
Warning: include_once(Zend\Gdata\Calendar\Extension\EventQuery.php) [function.include-once]: failed to open stream: No such file or directory in C:\Users\Luke Franklin\Clients\Tiers For Tea\Development\TiersForTea.com v1.1\lib\Zend\Loader.php on line 134
Warning: include_once() [function.include]: Failed opening 'Zend\Gdata\Calendar\Extension\EventQuery.php' for inclusion (include_path='.;C:\xampp\php\PEAR;C:\Users\Luke Franklin\Clients\Tiers For Tea\Development\TiersForTea.com v1.1\lib;C:\xampp\htdocs\TiersForTea.com\lib') in C:\Users\Luke Franklin\Clients\Tiers For Tea\Development\TiersForTea.com v1.1\lib\Zend\Loader.php on line 134
您的第一个想法可能是我没有使用正确的包含路径,但我已经检查并重新检查了很多次。我什至尝试对路径进行硬编码。我很确定我使用的是正确的路径。
现在是奇怪的一点。如果您查看错误,您会注意到 Zend 试图包含的文件:Zend\Gdata\Calendar\Extension\EventQuery.php
. 该文件实际上并不存在于“扩展”文件夹中。它确实存在于父文件夹中。如果我只是将“EventQuery.php”复制到“扩展”文件夹中,我的脚本将按预期运行。很奇怪,对吧?
所以这确实解决了我的问题,但我想知道这里发生了什么,以防它产生更多问题。我还应该注意,我正在将此脚本调用到 OpenCart 模块中。
您可能想查看我的一些代码,所以这里是重要部分的片段,如果您想了解更多详细信息,请告诉我:
<?php
set_include_path(get_include_path() . PATH_SEPARATOR . realpath('\\lib') . PATH_SEPARATOR . "C:\\xampp\\htdocs\\TiersForTea.com\\lib");
require_once('Zend/Loader.php');
function connect() {
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');