freshcells/soap-client-bundle

为 symfony 的 SoapClientBundle

3.0.0 2024-06-05 15:33 UTC

This package is auto-updated.

Last update: 2024-09-05 16:08:12 UTC


README

Latest Version on Packagist Software License soap-client-bundle Coverage Status Quality Score Total Downloads

为高级 SoapClient 提供的 symfony 集成。

Profiler

特性

  • 记录请求、响应和错误
  • 在记录前可以对 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)。请参阅 许可证文件 以获取更多信息。