PackageTrack
Sign in Get early access

phpro/soap-client

A general purpose SoapClient library

6.2.0 6.3M downloads/mo #2268 most downloaded on Packagist phpro/soap-client

What this package is like to depend on

Last release 2 months ago

29 May 2026

Release timing varies

gaps range from 2 weeks to 7 months

Rarely documented

notes for 8 of 84 stable releases

Nothing withdrawn

no release was ever pulled

11 years old

92 releases · first in 2015

13 releases in the last 12 months

see the full history below

Release timeline

90 releases · Jul 2015 to May 2026
2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 92
  1. 6.2.0 29 May 2026
    Release notes

    What's Changed

    • Sync console application version & add release Makefile by @veewee in #612

    Full Changelog: 6.1.0...6.2.0

    Open source →
  2. 6.1.0 28 May 2026
    Release notes

    What's Changed

    • GenConfigCommand - print wsdl loading exceptions when output is verbose by @YasserB94 in #610

    New Contributors

    Full Changelog: 6.0.0...6.0.1

    Open source →
  3. 6.0.0 27 Mar 2026
    Release notes

    What's changed

    • PHP 8.4 is now the minimum required version (PHP 8.3 support dropped)
    • Replaced monolithic php-standard-library/php-standard-library with standalone packages (^6.1)
    • Updated all php-soap packages to their latest versions
    • Removed the monolithic PSL package entirely from the dependency tree

    Dependency changes

    Package v5 v6
    php ~8.3.0 || ~8.4.0 || ~8.5.0 ~8.4.0 || ~8.5.0
    php-standard-library monolithic ^3-6 standalone packages ^6.1
    php-soap/cached-engine ~0.6 ~0.8
    php-soap/encoding ~0.28 ~0.32
    php-soap/engine ^2.19 ^2.20
    php-soap/psr18-transport ^1.7 ^2.0
    php-soap/wsdl-reader ~0.31 ~0.32

    Breaking changes

    PHP 8.4 minimum

    PHP 8.3 is no longer supported. Upgrade to PHP 8.4+ before updating.

    php-soap/psr18-transport 2.0 (from 1.x)

    The biggest user-facing change. All DOM types migrated to PHP 8.4's modern DOM API:

    • DOMDocument -> Dom\XMLDocument
    • DOMElement -> Dom\Element
    • DOMNode -> Dom\Node

    If you wrote custom middleware or manipulators that touch DOM objects, you need to update:

    // Before (v5):
    use Soap\Psr18Transport\Xml\XmlMessageManipulator;
    
    $manipulator = new XmlMessageManipulator(function (\DOMDocument $dom): void {
        // ...
    });
    
    // After (v6):
    $manipulator = new XmlMessageManipulator(function (\Dom\XMLDocument $dom): void {
        // ...
    });
    // Before (v5):
    $middleware = new SoapHeaderMiddleware(fn(\DOMNode $node): \DOMElement => /* ... */);
    
    // After (v6):
    $middleware = new SoapHeaderMiddleware(fn(\Dom\Node $node): \Dom\Element => /* ... */);

    php-soap/encoding 0.32 (from 0.31)

    • Element::fromDOMElement() and Element::element() now accept/return Dom\Element instead of DOMElement
    • All decoder/encoder type hints use Dom\ namespace equivalents
    • Attribute methods return null for missing values (previously empty strings)

    php-soap/wsdl-reader 0.32 (from 0.31)

    • If upgrading from <0.29: regenerate types if your webservice uses anonymous complexTypes

    PSL standalone packages

    The monolithic php-standard-library/php-standard-library has been replaced with standalone packages:

    php-standard-library/dict
    php-standard-library/foundation
    php-standard-library/iter
    php-standard-library/option
    php-standard-library/result
    php-standard-library/str
    php-standard-library/type
    php-standard-library/vec
    

    This should not affect end users unless you depend on PSL classes being available transitively.

    Upgrade steps

    1. Ensure you're running PHP 8.4+
    2. Update composer.json: composer require phpro/soap-client:^6.0
    3. Search your codebase for DOMDocument, DOMElement, DOMNode usage in SOAP middleware/manipulators and migrate to Dom\XMLDocument, Dom\Element, Dom\Node
    4. If using php-soap/encoding directly: update any Element::fromDOMElement() calls

    What's Changed

    • feat: bump PHP 8.4 minimum, update dependencies by @veewee in #608

    Full Changelog: 5.0.0...6.0.0

    Open source →
  4. 5.0.0 19 Mar 2026
    Release notes

    V5 overhauls the code generation configuration system with proper value objects, introduces XML namespace-aware type mapping, customizable coding standards, and improved default value handling for generated code.

    Upgrading

    composer require 'phpro/soap-client:^5.0.0-beta1@beta' --update-with-dependencies

    You'll need to update your code generation configuration file.
    For a step-by-step plan, you can follow the instructions at:

    https://github.com/phpro/soap-client/blob/v5.x/UPGRADING.md#v4-to-v5

    What's new

    Configuration overhaul

    The Config class no longer uses individual string setters. Instead, dedicated value objects — Destination, ClientConfig, ClassMapConfig, and TypeNamespaceMap — replace the old setTypeNamespace(), setTypeDestination(), setClientName(), etc. methods. The ConfigInterface has been removed.

    TypeNamespaceMap: XML namespace-aware type mapping

    A new TypeNamespaceMap allows you to map XML namespaces (xmlns) to specific PHP namespace destinations. This is useful when a WSDL defines types across multiple XML namespaces and you want to organize them into separate directories.

    You can use explicit withMapping() calls, a built-in PrefixBasedTypeNamespaceStrategy for automatic resolution, or combine both. The generate:config command now detects xmlns namespaces from your WSDL and suggests mappings in the generated config.

    Duplicate type strategies (IntersectDuplicateTypesStrategy and RemoveDuplicateTypesStrategy) are now namespace-aware — types that map to different PHP namespaces are no longer considered duplicates.

    Coding standards strategy

    A new CodingStandardsStrategyInterface lets you customize naming conventions for all generated code. By default, DefaultCodingStandardsStrategy is used, which matches existing behavior — no changes required for existing users.

    Configure it via Config::setCodingStandards(). Context classes (TypeContext, PropertyContext, ClientMethodContext, ClassMapContext) now require CodeGeneratorContext as an additional constructor parameter. Property gains new convenience methods methodName() and parameterName() that use the configured coding standards.

    Constructor and property default values

    The old PropertyDefaultsAssembler has been removed. Its functionality is now built into PropertyAssembler and ConstructorAssembler via a new DefaultValuesStrategy enum:

    • OptionalOnly (new default) — Only nullable/optional properties get = null
    • All (previous default) — All scalars get zero-value defaults
    • None — No defaults applied

    What's Changed

    • Make it possible to configure a mapping of type namespaces based on xmlns by @veewee in #599
    • Introduce DefaultValuesStrategy for constructor & property defaults by @veewee in #601
    • Introduce CodingStandardsStrategy for customizable naming conventions by @veewee in #602
    • feat: add support for azjezz/[email protected] by @EJTJ3 in #603
    • feat: replace azjezz/psl with php-standard-library/php-standard-library by @veewee in #606

    Full Changelog: 4.6.0...5.0.0

    Open source →
  5. 5.0.0-beta2 11 Mar 2026 pre-release
    Release notes

    What's Changed

    Full Changelog: 5.0.0-beta1...5.0.0-beta2

    Open source →
  6. 5.0.0-beta1 27 Feb 2026 pre-release
    Release notes

    This pre-release is experimental

    V5 overhauls the code generation configuration system with proper value objects, introduces XML namespace-aware type mapping, customizable coding standards, and improved default value handling for generated code.

    We decided to pre-launch at this point in order to get some feedback from you.
    Feel free to play around with it and give us feedback!

    Upgrading

    composer require 'phpro/soap-client:^5.0.0-beta1@beta' --update-with-dependencies

    You'll need to update your code generation configuration file.
    For a step-by-step plan, you can follow the instructions at:

    https://github.com/phpro/soap-client/blob/v5.x/UPGRADING.md#v4-to-v5

    What's new

    Configuration overhaul

    The Config class no longer uses individual string setters. Instead, dedicated value objects — Destination, ClientConfig, ClassMapConfig, and TypeNamespaceMap — replace the old setTypeNamespace(), setTypeDestination(), setClientName(), etc. methods. The ConfigInterface has been removed.

    TypeNamespaceMap: XML namespace-aware type mapping

    A new TypeNamespaceMap allows you to map XML namespaces (xmlns) to specific PHP namespace destinations. This is useful when a WSDL defines types across multiple XML namespaces and you want to organize them into separate directories.

    You can use explicit withMapping() calls, a built-in PrefixBasedTypeNamespaceStrategy for automatic resolution, or combine both. The generate:config command now detects xmlns namespaces from your WSDL and suggests mappings in the generated config.

    Duplicate type strategies (IntersectDuplicateTypesStrategy and RemoveDuplicateTypesStrategy) are now namespace-aware — types that map to different PHP namespaces are no longer considered duplicates.

    Coding standards strategy

    A new CodingStandardsStrategyInterface lets you customize naming conventions for all generated code. By default, DefaultCodingStandardsStrategy is used, which matches existing behavior — no changes required for existing users.

    Configure it via Config::setCodingStandards(). Context classes (TypeContext, PropertyContext, ClientMethodContext, ClassMapContext) now require CodeGeneratorContext as an additional constructor parameter. Property gains new convenience methods methodName() and parameterName() that use the configured coding standards.

    Constructor and property default values

    The old PropertyDefaultsAssembler has been removed. Its functionality is now built into PropertyAssembler and ConstructorAssembler via a new DefaultValuesStrategy enum:

    • OptionalOnly (new default) — Only nullable/optional properties get = null
    • All (previous default) — All scalars get zero-value defaults
    • None — No defaults applied

    What's Changed

    • Introduce TypeNamespaceMap strategy system by @veewee in #599
    • Introduce constructor & property default values with ScalarDefaultProvider by @veewee in #601
    • Introduce CodingStandardsStrategy for customizable naming conventions by @veewee in #602

    Full Changelog: 4.6.0...5.0.0-beta1

    Open source →
  7. 4.8.0 19 Mar 2026
    Release notes

    What's Changed

    • feat: replace azjezz/psl with php-standard-library/php-standard-library by @veewee in #606

    Full Changelog: 4.7.0...4.8.0

    Open source →
  8. 4.7.0 11 Mar 2026
    Release notes

    What's Changed

    Full Changelog: 4.6.0...4.7.0

    Open source →
  9. 4.6.0 28 Jan 2026
    Release notes

    What's Changed

    • feat: add support for symfony 8 by @EJTJ3 in #600

    New Contributors

    Full Changelog: 4.5.0...4.6.0

    Open source →
  10. 4.5.0 05 Nov 2025
    Release notes

    What's Changed

    • Update ClientConstructorAssembler to use type instead of phpdoc by @ayrtonandino in #595

    New Contributors

    Full Changelog: 4.4.1...4.5.0

    Open source →
  11. 4.4.1 23 Oct 2025

    Nothing published for this version

  12. 4.4.0 23 Oct 2025

    Nothing published for this version

  13. 4.3.0 21 Oct 2025

    Nothing published for this version

  14. 4.2.0 28 Mar 2025

    Nothing published for this version

  15. 4.1.1 30 Jan 2025

    Nothing published for this version

  16. 4.1.0 10 Jan 2025

    Nothing published for this version

  17. 4.0.0 03 Jan 2025

    Nothing published for this version

  18. 4.0.0-alpha5 no date pre-release

    Nothing published for this version

  19. 4.0.0-alpha4 19 Dec 2024 pre-release

    Nothing published for this version

  20. 4.0.0-alpha3 25 Oct 2024 pre-release

    Nothing published for this version

  21. 4.0.0-alpha2 27 Sep 2024 pre-release

    Nothing published for this version

  22. 4.0.0-alpha1 12 Jun 2024 pre-release

    Nothing published for this version

  23. 3.4.1 30 Jan 2025

    Nothing published for this version

  24. 3.4.0 25 Oct 2024

    Nothing published for this version

  25. 3.3.0 21 May 2024

    Nothing published for this version

  26. 3.2.0 26 Apr 2024

    Nothing published for this version

  27. 3.1.2 02 Apr 2024

    Nothing published for this version

  28. 3.1.1 21 Dec 2023

    Nothing published for this version

  29. 3.1.0 24 Nov 2023

    Nothing published for this version

  30. 3.0.0 29 Sep 2023

    Nothing published for this version

  31. 3.0.0-alpha1 28 Apr 2023 pre-release

    Nothing published for this version

  32. 2.4.2 07 Jun 2023

    Nothing published for this version

  33. 2.4.1 26 May 2023

    Nothing published for this version

  34. 2.4.0 14 Feb 2023

    Nothing published for this version

  35. 2.3.0 08 Dec 2022

    Nothing published for this version

  36. v2.2.1 17 May 2022

    Nothing published for this version

  37. v2.2.0 25 Mar 2022

    Nothing published for this version

  38. v2.1.0 06 Jan 2022

    Nothing published for this version

  39. v2.0.0 24 Sep 2021

    Nothing published for this version

  40. v1.7.4 17 May 2022

    Nothing published for this version

  41. v1.7.3 01 Feb 2022

    Nothing published for this version

  42. v1.7.2 07 Jan 2022

    Nothing published for this version

  43. v1.7.1 26 Nov 2021

    Nothing published for this version

  44. v1.7.0 14 Jul 2021

    Nothing published for this version

  45. v1.6.0 14 May 2021

    Nothing published for this version

  46. v1.5.0 30 Apr 2021

    Nothing published for this version

  47. v1.4.1 18 Dec 2020

    Nothing published for this version

  48. v1.4.0 27 Nov 2020

    Nothing published for this version

  49. v1.3.2 27 Nov 2020

    Nothing published for this version

  50. v1.3.1 25 Sep 2020

    Nothing published for this version

  51. v1.3.0 15 Jul 2020

    Nothing published for this version

  52. v1.2.0 29 May 2020

    Nothing published for this version

  53. v1.1.3 07 Apr 2020

    Nothing published for this version

  54. v1.1.2 20 Jan 2020

    Nothing published for this version

  55. v1.1.1 09 Jan 2020

    Nothing published for this version

  56. v1.1.0 20 Dec 2019

    Nothing published for this version

  57. v1.0.5 25 Oct 2019

    Nothing published for this version

  58. v1.0.4 14 Oct 2019

    Nothing published for this version

  59. v1.0.3 21 May 2019

    Nothing published for this version

  60. 1.0.2 10 May 2019

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive