我希望这很简单。
我有一个扩展Client
的{{1}}类(我使用自定义客户端,因为我想记录每个soap调用):
\SoapClient
这很好用,但是有一个问题。
如果失败,此客户不会抛出任何<?php
namespace App\Soap\Client;
class Client extends \SoapClient
{
/**
* @var ClientLogger
*/
private $logger;
/**
* Client constructor.
* @param $wsdl
* @param array|null $options
* @param ClientLogger $logger
*/
public function __construct($wsdl, array $options = [], ClientLogger $logger)
{
parent::__construct($wsdl, $options);
$this->logger = $logger;
}
...
或任何类型的\SoapFault
。
我找到的唯一方法就是:
Exception
以这种方式,如果连接失败,则抛出public function __construct($wsdl, array $options = [], ClientLogger $logger)
{
try {
new \SoapClient($wsdl, $options);
parent::__construct($wsdl, $options);
$this->logger = $logger;
} catch (\SoapFault $e){
...
}
}
。
我认为有更好的方法。
有什么想法吗?提前谢谢!