aaharu/curlsoapclient

A SoapClient wrapper that uses ext-curl.

1.1.2 2017-01-01 16:44 UTC

README

Build Status Scrutinizer Code Quality Code Coverage

A SoapClient wrapper that uses ext-curl.

https://packagist.org/packages/aaharu/curlsoapclient

Documentation

Aaharu\Soap\CurlSoapClient::CurlSoapClient

This class is extended SoapClient.

public CurlSoapClient::CurlSoapClient ( mixed $wsdl [, array $options ] )

supported options

  • soap_version
    • either SOAP_1_1 or SOAP_1_2. If omitted, SOAP_1_1 is used.
  • compression
  • trace
  • exceptions
  • connection_timeout
  • user_agent
  • keep_alive
    • true as a default
  • login
  • password
  • proxy_host
  • proxy_port
  • proxy_login
  • proxy_password
  • authentication
  • ssl_method

additional options

  • redirect_max
    • The maximum amount of HTTP redirections to follow. default is 5.
    • 5 as a default
  • curl_timeout
    • CURLOPT_TIMEOUT
    • 30 as a default

unsupported options

  • stream_context
    • not necessary with curl
  • local_cert
    • use CurlSoapClient::___curlSetOpt instead
  • passphrase
    • use CurlSoapClient::___curlSetOpt instead

examples

wsdl mode.

use Aaharu\Soap\CurlSoapClient;

try {
    $client = new CurlSoapClient('http://webservices.amazon.com/AWSECommerceService/2013-08-01/AWSECommerceService.wsdl', array('trace' => true));
    $client->ItemLookup();
} catch (\SoapFault $fault) {
}

echo $client->__getLastRequestHeaders() . $client->__getLastRequest();
POST /onca/soap?Service=AWSECommerceService HTTP/1.1
Host: webservices.amazon.com
Accept: */*
Connection: Keep-Alive
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://soap.amazon.com/ItemLookup"
Content-Length: 259

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://webservices.amazon.com/AWSECommerceService/2013-08-01"><SOAP-ENV:Body><ns1:ItemLookup/></SOAP-ENV:Body></SOAP-ENV:Envelope>

non-wsdl mode.

use Aaharu\Soap\CurlSoapClient;

$client = new CurlSoapClient(null, array(
    'location' => 'http://example.com/test/location',
    'uri' => 'http://example.com/test/uri',
    'redirect_max' => 1,
    'exceptions' => false,
));
$client->doSomething();

Contributing

With composer installed, run the following from the root of the repository:

composer install

Running the tests

## running built-in server before execute `composer test`
# php -dalways_populate_raw_post_data=-1 -ddisplay_errors=stderr -S localhost:8000 &
composer test

License

Licensed under the MIT License.