Skip to content

Migrate to veewee/xml v4 and PHP 8.4+#58

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

Migrate to veewee/xml v4 and PHP 8.4+#58
veewee merged 1 commit intophp-soap:mainfrom
veewee:feature/veewee-xml-v4-migration

Conversation

@veewee
Copy link
Copy Markdown
Member

@veewee veewee commented Mar 27, 2026

Summary

  • Bump minimum PHP to 8.4, drop 8.3 from CI matrices
  • Upgrade veewee/xml from ^3.6 to ^4.10 (PHP 8.4 spec-compliant DOM API)
  • Replace legacy DOMDocument/DOMElement/DOMNode/DOMAttr with Dom\ namespace equivalents
  • Replace deprecated Document::configure(loader(...)) with Document::fromLoader()
  • Fix nullability changes: getAttribute/getAttributeNS return null instead of '', textContent is ?string, localName is now non-nullable string
  • Use assert_document() for ownerDocument access (now ?Dom\Document)
  • Update Soap12FaultEncoderTest for changed namespace declaration serialization order
  • Bump all php-soap/* packages to latest versions
  • Bump php-soap/engine-integration-tests to ^1.12 (fixes nodeValue vs textContent for new DOM)
  • Switch from monolithic PSL to standalone dependencies (^6.1)
  • Add DOM stubs and phpVersion="8.4" to psalm.xml

Test plan

  • Unit tests pass (314 tests)
  • Compatibility tests pass (103 tests, 11 skipped)
  • Integration tests pass (143 tests)
  • Psalm: 0 errors at level 1
  • php-cs-fixer: clean
  • Tests pass on Docker docphpro/php84 (PHP 8.4.19, libxml 2.9.14)

- Bump minimum PHP to 8.4, drop 8.3 from CI
- Upgrade veewee/xml ^3.6 to ^4.10 (spec-compliant DOM API)
- Replace DOMDocument/DOMElement/DOMNode/DOMAttr with Dom\ equivalents
- Replace deprecated Document::configure(loader(...)) with Document::fromLoader()
- Use assert_document() for ownerDocument access (now ?Dom\Document)
- Fix getAttribute/getAttributeNS null returns (was empty string)
- Remove redundant null coalescing on localName (now non-nullable)
- Fix textContent nullability in fault encoders
- Update Soap12FaultEncoderTest for changed namespace serialization order
- Bump php-soap/* packages to latest versions
- Switch to standalone PSL dependencies (^6.1)
- Add DOM stubs and phpVersion to psalm.xml
@veewee veewee force-pushed the feature/veewee-xml-v4-migration branch from f16cfca to 3d30bd6 Compare March 27, 2026 13:06
@veewee veewee merged commit acaca46 into php-soap:main Mar 27, 2026
11 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