Skip to content

Release v2.0.0

Choose a tag to compare

@ITernovtsii ITernovtsii released this 06 Oct 16:01
· 1 commit to main since this release

Breaking changes

  • Requires PHP 8.4.
  • Upgraded to the latest php-soap stack: php-soap/encoding 0.35.0 (pinned exactly), php-soap/engine ^2.20, php-soap/wsdl-reader ^0.33, php-soap/psr18-transport ^2.1 and veewee/xml ^4.13, which uses the PHP 8.4 Dom\ API. Custom SOAP header configurators now receive Dom\Element instead of DOMElement.
  • From php-soap/encoding 0.33, attributes with falsy values (0, false) are sent in requests. Older versions silently dropped them.

Performance

  • Complex types are decoded by a bundle copy of php-soap's ObjectEncoder/ObjectAccess, located in src/Encoding/Encoder with every change marked OVERRIDE START/END. It decodes without exception-driven control flow and without building lens objects for every property. A 3 MB SynXis availability response now decodes in ~0.35 s instead of ~6 s, with identical output.
  • Derived types such as soapenc:Array restrictions still use php-soap's own built-in encoders.

Tests

  • Added PHPUnit tests that check every complex type is decoded by the bundle's encoder and that decoded output matches php-soap's own decoder (document/literal and rpc/encoded).