【问题标题】:magento XML RPC problem Class 'Zend_Http_Client' not found inmagento XML RPC 问题 Class 'Zend_Http_Client' not found in
【发布时间】:2023-03-25 22:40:01
【问题描述】:

知道什么会发生这种情况吗?我尝试使用 XML RPC zend 版本,但每当我尝试包含客户端时,我都会遇到某种错误。就像它包含客户端一样,但是之后客户端不知道如何包含文件...

测试连接脚本位于根目录,如下-

require_once 'lib/Zend/XmlRpc/Client.php';
$client = new Zend_XmlRpc_Client('http://mydomain.com/api/xmlrpc/');

任何帮助将不胜感激!

【问题讨论】:

    标签: php magento xml-rpc autoload


    【解决方案1】:

    PHP 不会开箱即用地自动为您加载类。您的脚本将要使用的任何 PHP 类都需要或包含在您的独立脚本中。

    PHP确实提供了一个名为__autoload 的功能。 __autoload 所做的是允许您定义一个回调函数,该函数在加载未定义的类时调用。然后,您可以在您的函数中采取行动,以确保需要或包含正确的类。

    当您在 Magento 中工作时,他们已经为您定义了自动加载器函数,负责加载大多数模块和 zend 类。听起来您正在编写一个独立的脚本,所以这对您不起作用。

    Zend Framework offers some classes 帮助设置自动加载器。

    最简单的解决方案?当您的脚本抱怨缺少文件时,请自行要求它。

    【讨论】:

    • 感谢您的回复。好吧,我很困惑。该类在我需要的文件中,它在文件 Client.php 中声明的第一件事是: class Zend_XmlRpc_Client { 所以这意味着它应该工作???
    • 根据您的标题,找不到 Zend_Http_Client 的类,而不是 Zend_XmlRpc_Client。
    • 好吧,我的错。好的,所以我回到包含我最初的 mage.php 文件,据我所知,它应该包含所有内容,现在我收到此错误。致命错误:未捕获的异常 'Zend_XmlRpc_Client_FaultException' 带有消息 '调用参数与签名不匹配' ..... Zend_XmlRpc_Client->call('login', Array) #1 {main} 抛出...... - 关于发生了什么的任何想法在那里?我检查了登录名和密码,他们用肥皂对我来说很好。
    • 我认为问题在于你没有努力解决自己的问题。
    • 嗯,我在这个问题上花了大概 36 个小时才放弃。也许你是对的,但考虑到我只写了大概 3 个月左右的 PHP,我的知识存在一些差距,但实际上我尝试了我能想到的一切......
    【解决方案2】:

    我只是在 Magento 扩展中尝试 xmlrpc。终于让它工作了,这是你必须在类声明之前放在文件开头的内容:

    require_once 'lib/Zend/Loader.php';
    Zend_Loader::registerAutoload();
    

    【讨论】:

      猜你喜欢
      • 2011-11-06
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      • 2017-08-04
      • 1970-01-01
      • 2016-12-18
      相关资源
      最近更新 更多