Skip to content

Upgrade to veewee/xml v4 with PHP 8.4+ Dom\ namespace#55

Merged
veewee merged 1 commit intophp-soap:mainfrom
veewee:feature/upgrade-veewee-xml-v4
Mar 27, 2026
Merged

Upgrade to veewee/xml v4 with PHP 8.4+ Dom\ namespace#55
veewee merged 1 commit intophp-soap:mainfrom
veewee:feature/upgrade-veewee-xml-v4

Conversation

@veewee
Copy link
Copy Markdown
Member

@veewee veewee commented Mar 27, 2026

Summary

  • Bump minimum PHP to 8.4, upgrade veewee/xml ^3.6 -> ^4.10, php-soap/engine -> ^2.20
  • Migrate all DOM types to the new Dom\ namespace (DOMElement -> Dom\Element, DOMNameSpaceNode -> Dom\NamespaceInfo)
  • Replace locate_by_tag_name with locate_by_namespaced_tag_name (spec-compliant DOM's getElementsByTagName matches qualified names, not local names)
  • Handle getAttribute() returning null instead of '' for missing attributes
  • Use toUnsafeLegacyDocument() from veewee/xml 4.10 for xsd-reader interop
  • Replace monorepo PSL with standalone packages (^6.1)
  • Add DOM stubs + phpVersion to psalm.xml, remove PHP 8.3 from CI

Test plan

  • All 149 PHPUnit tests pass locally (macOS, PHP 8.4)
  • All 149 tests pass on docphpro/php84 Docker (Ubuntu 24.04, libxml 2.9.14)
  • Psalm: 0 errors, 100% type inference
  • php-cs-fixer: 0 issues

@veewee veewee force-pushed the feature/upgrade-veewee-xml-v4 branch 2 times, most recently from 7794992 to 1ddc538 Compare March 27, 2026 12:35
- Bump minimum PHP to 8.4
- Upgrade veewee/xml from ^3.6 to ^4.10
- Bump php-soap/engine to ^2.20, php-soap/wsdl to ^1.19, php-soap/xml to ^1.10
- Replace monorepo PSL with standalone packages (^6.1)
- Migrate all DOM types: DOMElement -> Dom\Element, DOMNameSpaceNode -> Dom\NamespaceInfo
- Switch locate_by_tag_name to locate_by_namespaced_tag_name (getElementsByTagName
  now matches qualified names in spec-compliant DOM)
- Handle getAttribute() returning null instead of '' for missing attributes
- Use toUnsafeLegacyDocument() in SchemaParser for goetas-webservices/xsd-reader
  compatibility (still uses DOMElement)
- Add DOM stubs and phpVersion to psalm.xml
- Remove PHP 8.3 from CI matrices
@veewee veewee force-pushed the feature/upgrade-veewee-xml-v4 branch from 1ddc538 to 9a21bc2 Compare March 27, 2026 12:41
@veewee veewee merged commit 1d59dbb into php-soap:main Mar 27, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant