freshcells / soap-client-bundle
为 symfony 的 SoapClientBundle
3.0.0
2024-06-05 15:33 UTC
Requires
- php: ^8.1
- ext-soap: *
- psr/log: ^1.1 || ^2 || ^3
- ramsey/uuid: ^3.7 || ^4
- symfony/config: ^5.4 || ^6.4 || ^7.0
- symfony/dependency-injection: ^5.4 || ^6.4 || ^7.0
- symfony/event-dispatcher: ^5.4 || ^6.4 || ^7.0
- symfony/http-kernel: ^5.4 || ^6.4 || ^7.0
Requires (Dev)
- colinodell/psr-testlogger: ^1.3
- phpunit/phpunit: ^9
- squizlabs/php_codesniffer: ^3.10
- symfony/browser-kit: ^5.4 || ^6.4 || ^7.0
- symfony/debug-bundle: ^5.4 || ^6.4 || ^7.0
- symfony/framework-bundle: ^5.4 || ^6.4 || ^7.0
- symfony/phpunit-bridge: ^5.4 || ^6.4 || ^7.0
- symfony/web-profiler-bundle: ^5.4 || ^6.4 || ^7.0
- symfony/yaml: ^5.4 || ^6.4 || ^7.0
README
为高级 SoapClient 提供的 symfony 集成。
特性
- 记录请求、响应和错误
- 在记录前可以对 XML 进行匿名化
- 集成 DataCollector 和 symfony 分析器
- 在请求之前、之后以及在 SoapFault 发生时触发事件
- 在测试和开发过程中提供模拟请求和响应
安装
通过 Composer
$ composer require freshcells/soap-client-bundle
用法
初始化组件
freshcells_soap_client:
logger: monolog.logger.soap
anonymize_logs: # in case you need to anonymize certain elements in the xml logs
elements:
- 'GivenName'
- 'ns1:GivenName'
attributes: [ 'PhoneNumber' ]
namespaces:
dummy: 'http://gcomputer.net/webservices/'
truncate_element_logs: # in case you need to truncate some elements because values are too long for logging
elements:
- 'DailyDilbertResult'
namespaces:
dummy: 'http://gcomputer.net/webservices/'
max_length: 2
truncate_logs: # in case you need to truncate request/response logs
max_length: 350
创建一个 Soap Client 服务,并用 freshcells_soap_client.client
标签它
parameters:
mock_requests:
'http://gcomputer.net/webservices/DailyDilbert': './tests/Fixtures/MockRequest.xml'
mock_responses:
'http://gcomputer.net/webservices/DailyDilbert': './tests/Fixtures/MockResponse.xml'
soap_options:
mock_requests: '%mock_requests%'
mock_responses: '%mock_responses%'
services:
_instanceof:
Freshcells\SoapClientBundle\SoapClient\SoapClient:
tags: [ 'freshcells_soap_client.client' ]
Freshcells\SoapClientBundle\SoapClient\SoapClient:
arguments: ['%soap_wsdl%', '%soap_options%']
public: true
SoapClient 在组件外部创建,以提供更大的灵活性,例如在使用生成器如 https://github.com/wsdl2phpgenerator/wsdl2phpgenerator 时。
该组件提供了一个高级 SoapClient,负责触发事件、模拟和错误处理。
请确保使用此客户端或从它扩展。
$response = $this->container->get('Freshcells\SoapClientBundle\SoapClient\SoapClient')->DailyDilbert();
注意
如果请求的操作和位置与请求不同,则可以通过可调用对象检测模拟请求,这在一些 Soap 服务器中是常见的情况。请参阅测试用例了解实现方法。
变更日志
请参阅 CHANGELOG 以获取有关最近更改的更多信息。
测试
$ composer test
待办事项
- 添加到分析器的时间线
- 模拟指示器
- 制作中间件
- 在折叠标题中显示错误/SoapFault指示器
- 使用 options-resolver
贡献
请参阅 CONTRIBUTING 以获取详细信息。
安全性
如果您发现任何安全相关的问题,请通过电子邮件 ivo.bathke@freshcells.de 而不是使用问题跟踪器。
致谢
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 以获取更多信息。