cansozeri/php-soap-client

一个用于将 SOAP 消息解释和绑定到 PSR-7 HTTP 消息的 PHP 库

v1.1.2 2021-02-17 08:07 UTC

This package is auto-updated.

Last update: 2024-09-17 16:22:10 UTC


README

此包旨在帮助您将 SOAP 1.1 和 SOAP 1.2 消息解释和绑定到 PSR-7 HTTP 消息。

GitHub release (latest by date) GitHub

安装

$ composer require cansozeri/php-soap-client

用法

SoapDriver

❗️ Make sure ext-soap is loaded.

此 soap 驱动程序包装了 PHP 的 ext-soap \SoapClient 实现。

  • 它滥用 __doRequest() 方法来实现对请求和响应的编码和解码。
  • 元数据是根据 __getTypes()__getFunctions() 方法解析的。

示例用法

  • 您可以使用 SoapEngine 特性来创建 "Soap Service" 实例。
<?php

use Canszr\SoapClient\SoapEngine;
use Canszr\SoapClient\SoapOptions;

use SoapEngine;

$options = SoapOptions::defaults($wsdl, [
            'soap_version' => SOAP_1_2,
        ])->disableWsdlCache();

$service = $this->fromOptions($options);

SoapOptions

此包提供了对所有可用的 \SoapClient 选项的小型包装。我们提供了一些默认选项,并且可以配置附加选项。在将选项传递给 \SoapClient 之前,它会验证这些选项。这样,您将花费更少的时间浏览官方 PHP 文档。

示例用法

<?php

use Canszr\SoapClient\SoapOptions;

$options = SoapOptions::defaults($wsdl, ['soap_version' => SOAP_1_2])
    ->disableWsdlCache();

$typemap = $options->getTypeMap();
$typemap->add(new MyTypeConverter());

处理器

HttPlugHandle

特性:LastRequestInfoCollector, MiddlewareSupporting

HTTPlug 是一个 HTTP 客户端抽象,可用于与多个客户端包一起使用。使用此处理器可以轻松控制 SOAP 客户端的 HTTP 层。您可以为 http 客户端指定一个或多个中间件。这使得您能够操作请求和响应对象,从而实现完全控制。

如果您的 HTTP 客户端支持 HTTP 中间件,此处理器知道如何处理它们。

依赖项

加载 HTTP 插件核心包

composer require psr/http-message:^1.0 php-http/httplug:^2.1 php-http/message-factory:^1.0 php-http/discovery:^1.7 php-http/message:^1.8 php-http/client-common:^2.1

选择 HTTP 客户端

选择您想要用于执行 HTTP 请求的众多客户端之一: http://docs.php-http.org/en/latest/clients.html#clients-adapters

composer require php-http/client-implementation:^1.0

示例用法

<?php

use Canszr\SoapClient\Handler\HttPlugHandle;
use Canszr\SoapClient\SoapEngine;
use Canszr\SoapClient\SoapOptions;
use Canszr\SoapClient\Middleware\BasicAuthMiddleware;
use Http\Adapter\Guzzle6\Client;


use SoapEngine;

$options = SoapOptions::defaults($wsdl, [
            'soap_version' => SOAP_1_2,
        ])->disableWsdlCache();

$handler = HttPlugHandle::createForClient(
    Client::createWithConfig(['headers' => ['User-Agent' => 'testing/1.0']])
);

$handler->addMiddleware(new BasicAuthMiddleware('user', 'password'));

$service = $this->fromOptionsWithHandler($options, $handler);

SoapClientHandle

特性:LastRequestInfoCollector

❗️ Make sure ext-soap is loaded.

SoapClientHandle 是默认使用的,与内置的 __doRequest() 方法一起工作。此处理器不可配置,可用于不使用扩展的 soap 实现。它默认激活,以便您可以快速开始。

示例用法

<?php

use Canszr\SoapClient\SoapEngine;
use Canszr\SoapClient\SoapOptions;

use SoapEngine;

$service = $this->fromOptions(SoapOptions::defaults($wsdl, []));