diff --git a/src/BeSimple/SoapClient/SoapClient.php b/src/BeSimple/SoapClient/SoapClient.php index d4f9638..125ea21 100644 --- a/src/BeSimple/SoapClient/SoapClient.php +++ b/src/BeSimple/SoapClient/SoapClient.php @@ -61,7 +61,7 @@ class SoapClient extends \SoapClient $this->curl, $soapOptions->getWsdlFile(), $soapOptions->getWsdlCacheType(), - false + $soapClientOptions->isResolveRemoteIncludes() ); } catch (Exception $e) { throw new SoapFault( diff --git a/src/BeSimple/SoapClient/SoapClientOptionsBuilder.php b/src/BeSimple/SoapClient/SoapClientOptionsBuilder.php index 6d54aa0..3c277ac 100644 --- a/src/BeSimple/SoapClient/SoapClientOptionsBuilder.php +++ b/src/BeSimple/SoapClient/SoapClientOptionsBuilder.php @@ -81,4 +81,25 @@ class SoapClientOptionsBuilder $endpointLocation ); } + + /** + * @param SoapServerAuthenticationInterface $authentication + * @param bool $resolveRemoteIncludes + * @return SoapClientOptions + */ + public static function createWithAuthenticationAndResolveRemoteIncludes( + SoapServerAuthenticationInterface $authentication, + $resolveRemoteIncludes + ) { + return new SoapClientOptions( + SoapClientOptions::SOAP_CLIENT_TRACE_ON, + SoapClientOptions::SOAP_CLIENT_EXCEPTIONS_ON, + CurlOptions::DEFAULT_USER_AGENT, + SoapClientOptions::SOAP_CLIENT_COMPRESSION_NONE, + $authentication, + SoapClientOptions::SOAP_CLIENT_PROXY_NONE, + SoapClientOptions::SOAP_CLIENT_ENDPOINT_LOCATION_NONE, + $resolveRemoteIncludes + ); + } } diff --git a/src/BeSimple/SoapClient/SoapOptions/SoapClientOptions.php b/src/BeSimple/SoapClient/SoapOptions/SoapClientOptions.php index aab8cc9..6b6cd4b 100644 --- a/src/BeSimple/SoapClient/SoapOptions/SoapClientOptions.php +++ b/src/BeSimple/SoapClient/SoapOptions/SoapClientOptions.php @@ -19,6 +19,9 @@ class SoapClientOptions const SOAP_CLIENT_COMPRESSION_DEFLATE = CurlOptions::SOAP_COMPRESSION_DEFLATE; const SOAP_CLIENT_AUTHENTICATION_NONE = null; const SOAP_CLIENT_PROXY_NONE = null; + const SOAP_CLIENT_ENDPOINT_LOCATION_NONE = null; + const SOAP_CLIENT_RESOLVE_REMOTE_INCLUDES_ON = true; + const SOAP_CLIENT_RESOLVE_REMOTE_INCLUDES_OFF = false; private $trace; private $exceptions; @@ -27,15 +30,17 @@ class SoapClientOptions private $authentication; private $proxy; private $location; + private $resolveRemoteIncludes; /** - * @param bool $trace = SoapClientOptions::SOAP_CLIENT_TRACE_ON|SoapClientOptions::SOAP_CLIENT_TRACE_OFF - * @param bool $exceptions = SoapClientOptions::SOAP_CLIENT_EXCEPTIONS_ON|SoapClientOptions::SOAP_CLIENT_EXCEPTIONS_OFF + * @param bool $trace = self::SOAP_CLIENT_TRACE_ON|self::SOAP_CLIENT_TRACE_OFF + * @param bool $exceptions = self::SOAP_CLIENT_EXCEPTIONS_ON|self::SOAP_CLIENT_EXCEPTIONS_OFF * @param string $userAgent - * @param int|null $compression = SoapClientOptions::SOAP_CLIENT_COMPRESSION_NONE|SoapClientOptions::SOAP_CLIENT_COMPRESSION_GZIP|SoapClientOptions::SOAP_CLIENT_COMPRESSION_DEFLATE + * @param int|null $compression = self::SOAP_CLIENT_COMPRESSION_NONE|self::SOAP_CLIENT_COMPRESSION_GZIP|self::SOAP_CLIENT_COMPRESSION_DEFLATE * @param SoapServerAuthenticationInterface|null $authentication * @param SoapServerProxy|null $proxy * @param string|null $location + * @param bool $resolveRemoteIncludes = self::SOAP_CLIENT_RESOLVE_REMOTE_INCLUDES_ON|self::SOAP_CLIENT_RESOLVE_REMOTE_INCLUDES_OFF */ public function __construct( $trace, @@ -44,7 +49,8 @@ class SoapClientOptions $compression = null, SoapServerAuthenticationInterface $authentication = null, SoapServerProxy $proxy = null, - $location = null + $location = null, + $resolveRemoteIncludes = false ) { $this->trace = $trace; $this->exceptions = $exceptions; @@ -53,6 +59,7 @@ class SoapClientOptions $this->authentication = $authentication; $this->proxy = $proxy; $this->location = $location; + $this->resolveRemoteIncludes = $resolveRemoteIncludes; } public function getTrace() @@ -120,6 +127,11 @@ class SoapClientOptions return $this->location; } + public function isResolveRemoteIncludes() + { + return $this->resolveRemoteIncludes; + } + public function toArray() { $optionsAsArray = [