Make it possible to configure a mapping of type namespaces based on xmlns#599
Merged
veewee merged 5 commits intophpro:v5.xfrom Feb 27, 2026
Merged
Make it possible to configure a mapping of type namespaces based on xmlns#599veewee merged 5 commits intophpro:v5.xfrom
veewee merged 5 commits intophpro:v5.xfrom
Conversation
veewee
commented
Dec 19, 2025
7674629 to
35fc5de
Compare
69dffd1 to
69fb234
Compare
69fb234 to
587f35b
Compare
veewee
commented
Feb 27, 2026
669f867 to
7a6e341
Compare
7a6e341 to
23d6efe
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request introduces a major breaking change (v4 to v5) that enables configuration of type namespace mappings based on XML namespaces (xmlns). The change addresses issue #571, which requested support for types in multiple namespaces using PHP 8.4's Clark notation.
Changes:
- Introduces new configuration value objects (
Destination,ClientConfig,ClassMapConfig,TypeNamespaceMap) to replace scattered string-based configuration - Implements XML namespace-aware type generation with explicit mappings and strategy-based resolution
- Makes duplicate type detection namespace-aware (types in different target PHP namespaces are no longer considered duplicates)
- Updates all model classes, contexts, generators, and console commands to work with the new configuration structure
- Adds comprehensive test coverage for new functionality
- Includes detailed documentation and upgrade guide
Reviewed changes
Copilot reviewed 113 out of 113 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
src/Phpro/SoapClient/CodeGenerator/Config/* |
New configuration value objects and TypeNamespaceMap implementation |
src/Phpro/SoapClient/CodeGenerator/Model/* |
Updated to use TypeNamespaceMap instead of plain strings |
src/Phpro/SoapClient/CodeGenerator/Context/* |
Updated to use new config objects |
src/Phpro/SoapClient/CodeGenerator/*Generator.php |
Updated generators to work with new configuration |
src/Phpro/SoapClient/Soap/Metadata/Manipulators/DuplicateTypes/* |
Namespace-aware duplicate detection |
src/Phpro/SoapClient/Console/Command/* |
Updated commands to use new configuration |
test/**/*Test.php |
Comprehensive test coverage for changes |
docs/**/*.md |
Updated documentation and upgrade guide |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See #571
This is a breaking change, since it introduces a new way of configuring the code generation.
The models and contexts also changed.
Example: