Skip to content

meng-tian/async-soap-guzzle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Asynchronous SOAP client

codecov.io workflow

An asynchronous SOAP client build on top of Guzzle. The SoapClient implements meng-tian/php-async-soap.

Requirement

PHP 7.1 --enablelibxml --enable-soap

Install

composer require meng-tian/async-soap-guzzle

Usage

From v0.4.0 or newer, an instance of Psr\Http\Message\RequestFactoryInterface and an instance of Psr\Http\Message\StreamFactoryInterface need to be injected into Meng\AsyncSoap\Guzzle\Factory. These two interfaces are defined in PSR-17 to create PSR-7 compliant HTTP instances. This change will decouple this library from any specific implementation of PSR-7 and PSR-17. Clients can determine which implementation of PSR-17 they want to use. Plenty of different implementations of PSR17 can be found from Packagist, e.g., symfony/psr-http-message-bridge, or laminas/laminas-diactoros.

  1. Require this library and an implementation of PSR-17 in your composer.json:
...
    "require": {
        "php": ">=7.1.0",
        "meng-tian/async-soap-guzzle": "~0.4.0",
        "laminas/laminas-diactoros": "^2.0"  # this can be replaced by any implementation of PSR-17
    },
...
  1. Run composer install

  2. Create your async SOAP client and call your SOAP messages:

use GuzzleHttp\Client;
use Meng\AsyncSoap\Guzzle\Factory;
use Laminas\Diactoros\RequestFactory;
use Laminas\Diactoros\StreamFactory;

$factory = new Factory();
$client = $factory->create(new Client(), new StreamFactory(), new RequestFactory(), 'http://www.webservicex.net/Statistics.asmx?WSDL');

// async call
$promise = $client->callAsync('GetStatistics', [['X' => [1,2,3]]]);
$result = $promise->wait();

// sync call
$result = $client->call('GetStatistics', [['X' => [1,2,3]]]);

// magic method
$promise = $client->GetStatistics(['X' => [1,2,3]]);
$result = $promise->wait();

License

This library is released under MIT license.

About

An asynchronous SOAP client build on top of Guzzle.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages