cansozeri / php-soap-client
一个用于将 SOAP 消息解释和绑定到 PSR-7 HTTP 消息的 PHP 库
Requires
- php: ^7.2
- ext-dom: *
- ext-json: *
- ext-soap: *
- ext-xml: *
- psr/log: ^1.1
- symfony/event-dispatcher: ~5.0
Requires (Dev)
- laminas/laminas-diactoros: ^2.3@dev
- php-http/client-common: ^2
- php-http/client-implementation: ^1
- php-http/discovery: ^1.7
- php-http/guzzle6-adapter: ^2.0
- php-http/httplug: ^2
- php-http/message: ^1.8
- php-http/message-factory: ^1.0
- php-http/mock-client: ^1.4
- phpunit/phpunit: ^8.5
- psr/http-message: ^1.0
This package is auto-updated.
Last update: 2024-09-17 16:22:10 UTC
README
此包旨在帮助您将 SOAP 1.1 和 SOAP 1.2 消息解释和绑定到 PSR-7 HTTP 消息。
安装
$ 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, []));