Php 在Magento事件侦听器内创建nusoap对象引发异常

Php 在Magento事件侦听器内创建nusoap对象引发异常,php,magento,events,magento-1.7,nusoap,Php,Magento,Events,Magento 1.7,Nusoap,在Magento 1.7.0.2中,我创建了一个事件监听器,每次应用程序检查产品的最终价格时都会触发该监听器(最终代码不会在该事件中触发,但为了测试方便,我在这里尝试) 该事件触发得很好,并相应地更改了价格,但当我尝试创建nusoap对象以对外部Web服务进行非wsdl调用时,它会发出警告,并且不会创建客户机对象 代码是: $endpoint = 'http://[ip]:155/[client_name]/[client_name].soap2'; try {

在Magento 1.7.0.2中,我创建了一个事件监听器,每次应用程序检查产品的最终价格时都会触发该监听器(最终代码不会在该事件中触发,但为了测试方便,我在这里尝试)

该事件触发得很好,并相应地更改了价格,但当我尝试创建nusoap对象以对外部Web服务进行非wsdl调用时,它会发出警告,并且不会创建客户机对象

代码是:

    $endpoint = 'http://[ip]:155/[client_name]/[client_name].soap2';

    try {
        $client = new nusoap_client($endpoint);
    } catch (Exception $e) {
        echo $e->getMessage();
    }
并提出警告:

Warning: include(Nusoap/Client.php) 
[<a href="function.include">function.include</a>]: 
failed to open stream: No such file or directory  in 
/var/www/clients/client3/magento/lib/Varien/Autoload.php on line 93
警告:include(Nusoap/Client.php)
[]: 
无法打开流:中没有此类文件或目录
/var/www/clients/client3/magento/lib/Varien/Autoload.php,第93行
如果在Magento根目录上执行,同样的代码也可以正常工作,在那里我甚至可以调用正确的webservice并解析响应


我已将nusoap库(v.0.9.5)包含在Magento根库目录中,但没有明确要求它们。

您已经确定了问题所在

我已经将nusoap库(v.0.9.5)包含在Magento根库目录中,并且没有特别需要它们

当您尝试使用
nusoap\u客户机
类实例化对象时,PHP找不到该类。根据标准行为,它调用Magento autoloader方法,该方法将类
nusoap_client
转换为文件路径
nusoap/client.php
,然后尝试
包含该文件。PHP根据标准的include
行为,在以下位置查找文件:

app/code/local/Nusoap/Client.php
app/code/community/Nusoap/Client.php
app/code/core/Nusoap/Client.php
lib/Nusoap/Client.php
path/of/the/calling/script/Nusoap/Client.php

您在这些位置都没有文件,因此PHP会发出警告。手动要求您的
nusoap
对象,将对象的加载程序放置在上述路径之一,或添加一个处理库位置的自定义自动加载程序。

感谢您的回复。我添加了
require_一次(BP.DS.lib/nusoap/lib/nusoap.php)在课程开始时,一切正常。