meng-tian/async-soap-guzzle

基于Guzzle构建的异步SOAP客户端。

v0.4.1 2022-11-21 22:22 UTC

This package is not auto-updated.

Last update: 2024-09-21 08:10:00 UTC


README

codecov.io workflow

基于Guzzle构建的异步SOAP客户端。`SoapClient` 实现了 meng-tian/php-async-soap

需求

PHP 7.1 --enablelibxml --enable-soap

安装

composer require meng-tian/async-soap-guzzle

使用方法

从 v0.4.0 或更高版本开始,需要在 `Meng\AsyncSoap\Guzzle\Factory` 中注入 `Psr\Http\Message\RequestFactoryInterface` 和 `Psr\Http\Message\StreamFactoryInterface` 的实例。这两个接口在 PSR-17 中定义,用于创建符合PSR-7的HTTP实例。此更改将使该库与PSR-7和PSR-17的任何特定实现解耦。客户端可以确定他们想要使用哪个PSR-17的实现。可以从 Packagist 找到大量的PSR17实现,例如,`symfony/psr-http-message-bridge` 或 `laminas/laminas-diactoros`。

  1. 在您的 `composer.json` 中包含此库和PSR-17的实现
...
    "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. 运行 composer install

  2. 创建您的异步SOAP客户端并调用您的SOAP消息

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();

许可

此库在 MIT 许可下发布。