Phpro\SoapClient\Client::call PHP Method

call() protected method

protected call ( string $method, Phpro\SoapClient\Type\RequestInterface $request ) : Phpro\SoapClient\Type\ResultInterface
$method string
$request Phpro\SoapClient\Type\RequestInterface
return Phpro\SoapClient\Type\ResultInterface
    protected function call($method, RequestInterface $request)
    {
        $requestEvent = new Event\RequestEvent($this, $method, $request);
        $this->dispatcher->dispatch(Events::REQUEST, $requestEvent);
        try {
            $arguments = $request instanceof MultiArgumentRequestInterface ? $request->getArguments() : [$request];
            $result = call_user_func_array([$this->soapClient, $method], $arguments);
            if ($result instanceof ResultProviderInterface) {
                $result = $result->getResult();
            }
            if (!$result instanceof ResultInterface) {
                $result = new MixedResult($result);
            }
        } catch (SoapFault $soapFault) {
            $this->dispatcher->dispatch(Events::FAULT, new Event\FaultEvent($this, $soapFault, $requestEvent));
            throw $soapFault;
        }
        $this->dispatcher->dispatch(Events::RESPONSE, new Event\ResponseEvent($this, $requestEvent, $result));
        return $result;
    }