Skip to content

Stdlib: withhold soap on reference profile without host php-soap (#22859)#22997

Merged
PurHur merged 1 commit into
masterfrom
fix/22859-soap-extension-gate
Jul 25, 2026
Merged

Stdlib: withhold soap on reference profile without host php-soap (#22859)#22997
PurHur merged 1 commit into
masterfrom
fix/22859-soap-extension-gate

Conversation

@PurHur

@PurHur PurHur commented Jul 25, 2026

Copy link
Copy Markdown
Owner

Summary

  • Gate ext/soap advertisement on host extension_loaded('soap') or PHP_COMPILER_PROFILE=8.4 (CompilerVersion::supportsSoap()), matching Zend builds without php-soap.
  • Withhold SoapClient/SoapServer/SoapFault, is_soap_fault/use_soap_error_handler, and module registration on the reference harness; skip functional soap PHPTs until advertised (phantom kept).
  • php-src: ext/soap/soap.c; PHP in ext/soap + BuiltinIntrospectionPolicy / ModuleRegistry.

Closes #22859

Test plan

  • php bin/vm.php test/repro/extension_loaded_soap_phantom.php → all no (matches Zend)
  • PHP_COMPILER_PROFILE=8.4 php bin/vm.php … → all yes
  • vendor/bin/phpunit --filter SoapExtensionPolicyTest → OK
  • vendor/bin/phpunit --filter extension_loaded_soap_phantom → OK (2)
  • php script/bootstrap-inventory.php --check → OK 6518/6518

Verification transcript

=== ZEND ===
ext=no SoapClient=no SoapServer=no SoapFault=no is_soap_fault=no
=== VM default ===
ext=no SoapClient=no SoapServer=no SoapFault=no is_soap_fault=no
=== VM PROFILE=8.4 ===
ext=yes SoapClient=yes SoapServer=yes SoapFault=yes is_soap_fault=yes
=== UNIT ===
OK (1 test, 7 assertions)
=== COMPLIANCE phantom ===
OK (2 tests, 2 assertions)
=== inventory ===
OK 6518/6518

Made with Cursor

)

Match Zend: extension_loaded('soap') and SoapClient/SoapServer/SoapFault stay
false on the 8.4.0-dev reference harness; enable via host ext/soap or
PHP_COMPILER_PROFILE=8.4. Phantom compliance + policy unit coverage.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit 1dceb65 into master Jul 25, 2026
1 check failed
@PurHur
PurHur deleted the fix/22859-soap-extension-gate branch July 25, 2026 11:03
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.

Regression: extension_loaded('soap') + SoapClient/SoapServer/SoapFault class_exists on default profile — Zend false (ext/soap)

1 participant