【问题标题】:Could you easily switch from SoapClient to pear's Soap_Client你能轻松地从 SoapClient 切换到 pear 的 Soap_Client
【发布时间】:2017-03-29 18:18:57
【问题描述】:

我最近更换了主机,发现它们只支持 Pear 的 Soap_Client 类而不支持标准的 PHP SoapClient 类,并且在我进行切换之前查看的论坛中说相反。是否有一种特定的语法可以用来轻松地从一种切换到另一种?我对 PEAR Soap_Client 类不太熟悉,无法知道足以进行转换的差异。因此,即使两者之间有明显的区别,也将不胜感激。我已经基于此运行了几个类/函数/方法,此时必须切换主机将是相当浪费的钱。提前致谢!

编辑

这是我在哪里调用类的一个小sn-p:

        try {
        $soapClient = new SoapClient(
            $this->webserviceWsdl,
            array(
                'exceptions'    => 1,
                'trace'             => 1
            )
        );
    } catch (SoapFault $fault) {
        return json_decode(json_encode(array('status' => 'invalid', 'msg' => "SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})")),1);
    }

    try {   
        $soapClient->__setLocation(str_replace(
            '%%foo%%',
            $this->responseConfig['foo'],
            $this->webserviceEndpoint
        ));
    } catch (SoapFault $fault) {
        return json_decode(json_encode(array('status' => 'invalid', 'msg' => "SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})")),1);
    }

    try {
        $soapClient->__setSoapHeaders($this->buildSoapHeader($function));  
        return $soapClient->__soapCall($function, array($params));
    } catch (SoapFault $fault) {
        return json_decode(json_encode(array('status' => 'invalid', 'msg' => "SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})")),1);
    }

【问题讨论】:

  • 您应该提供您当前的解决方案并寻求帮助,而不仅仅是要求 SO 解决您的问题。 stackoverflow.com/help/how-to-ask
  • 我没有要求任何人解决任何问题。我只是在问是否有已知的方法,或者是否有更好的把握的人会足够了解这些差异,以便我能够理解并做出改变。每当我有问题时,我通常确实倾向于添加代码,但我认为这个代码足够具体,不需要它,因为它纯粹是一个语法问题。我的代码并没有被破坏,因为新主机只是不支持该类。我只是添加了其他部分来理解我为什么想做这样的事情。如果你愿意,我可以添加一个 sn-p。
  • 我不知道答案,所以我只是赞成你的问题,希望有人能回答

标签: php soap pear


【解决方案1】:

不,没有简单的方法可以让您的代码使用 PEAR 的 SoapClient 类而不是 PHP 的内置类。他们的 API 太不一样了。

也就是说,您不应该使用 PEAR 的 SOAP 客户端库,因为它没有维护。

尝试说服宿主在他们的服务器上安装 php-soap 包 - 这并不难。

【讨论】:

  • 我认为可能是这样,但我真的很希望。我之前试图说服他们,但并没有那么顺利。不过我会再试一次。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-30
  • 1970-01-01
  • 1970-01-01
  • 2020-06-05
  • 1970-01-01
相关资源
最近更新 更多