You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Stdlib · php-src-strict · extension advertisement (pairs #3724 SoapClient subset; same shape as #22790 / #22791)
Problem
On a host Zend build withoutext/soap, extension_loaded('soap') and class_exists('SoapClient'|'SoapServer'|'SoapFault', false) are all false. The VM advertises soap as loaded and materializes all three classes on the default (8.2 reference) profile.
This is distinct from #3724 (implement SoapClient behavior). Workers should gate advertisement / class registration to match Zend’s loaded-module set first; subset API work stays on #3724.
ext/soap module registration / CompilerVersion / extension policy: do not advertise soap or register SoapClient/SoapServer/SoapFault when the reference profile’s Zend build would not load soap
On default/reference profile matching a Zend build without soap: extension_loaded('soap') false and the three Soap* classes are not class_exists(..., false)
When soap is intentionally enabled for a profile/build, advertisement and classes return true together
Category
Stdlib· php-src-strict · extension advertisement (pairs #3724 SoapClient subset; same shape as #22790 / #22791)Problem
On a host Zend build without
ext/soap,extension_loaded('soap')andclass_exists('SoapClient'|'SoapServer'|'SoapFault', false)are all false. The VM advertises soap as loaded and materializes all three classes on the default (8.2 reference) profile.This is distinct from #3724 (implement SoapClient behavior). Workers should gate advertisement / class registration to match Zend’s loaded-module set first; subset API work stays on #3724.
Probed 2026-07-24 (host PHP 8.2.32, soap absent).
extension_loaded('soap')class_exists('SoapClient', false)class_exists('SoapServer', false)class_exists('SoapFault', false)php-src reference
ext/soap/soap.c— module + class registrationext/standard/dl.c/basic_functions.c—extension_loadedintrospectionPHP implementation target
ext/soapmodule registration /CompilerVersion/ extension policy: do not advertise soap or registerSoapClient/SoapServer/SoapFaultwhen the reference profile’s Zend build would not load soapext/soap+lib/; no new C runtime branchesRepro
Done when
extension_loaded('soap')false and the three Soap* classes are notclass_exists(..., false).phptundertest/compliance/cases/