From df028e7817457c5d00b48ded1dd6428e0168e401 Mon Sep 17 00:00:00 2001 From: Louis-Arnaud Date: Mon, 3 Aug 2026 11:15:41 +0200 Subject: [PATCH] ext/soap: document PHP 8.4 changes - SoapVar: a DateTimeInterface value of an xsd:dateTime (or similar) element is now serialized to its ISO 8601 form instead of an empty string. - SoapServer::setPersistence: document shared session module support. - SoapClient/SoapServer constructors: document clark notation for namespaces in the class map. - SoapClient::$typemap is now an array instead of a resource (BC break). --- reference/soap/soapclient.xml | 12 ++++++--- reference/soap/soapclient/construct.xml | 7 +++++ reference/soap/soapserver/construct.xml | 8 ++++-- reference/soap/soapserver/setpersistence.xml | 28 +++++++++++++++++++- reference/soap/soapvar/construct.xml | 9 +++++++ 5 files changed, 58 insertions(+), 6 deletions(-) diff --git a/reference/soap/soapclient.xml b/reference/soap/soapclient.xml index 335535c97d0b..629a870a1358 100644 --- a/reference/soap/soapclient.xml +++ b/reference/soap/soapclient.xml @@ -72,7 +72,7 @@ private - resourcenull + arraynull typemap null @@ -487,8 +487,14 @@ typemap - - + + An array of type mappings used for custom XML-to-PHP type conversions, + or &null; if no type mappings are configured. + As of PHP 8.4.0, this property is of type array; + previously it was of type resource. + Code using is_resource to check this property + must be updated accordingly. + diff --git a/reference/soap/soapclient/construct.xml b/reference/soap/soapclient/construct.xml index 7159111fb0f3..6b03cbd5871c 100644 --- a/reference/soap/soapclient/construct.xml +++ b/reference/soap/soapclient/construct.xml @@ -368,6 +368,13 @@ __get() methods for individual properties will be. + + As of PHP 8.4.0, keys may also be specified using Clark notation, + in the form {namespace}type, to map a type from a + specific XML namespace, for example + '{http://example.com}foo'. This is useful when + the same type name is defined in more than one namespace. + diff --git a/reference/soap/soapserver/construct.xml b/reference/soap/soapserver/construct.xml index 48d799889a1d..0884ea9ae02f 100644 --- a/reference/soap/soapserver/construct.xml +++ b/reference/soap/soapserver/construct.xml @@ -41,11 +41,15 @@ internal character encoding (encoding), and actor URI (actor). - + The classmap option can be used to map some WSDL types to PHP classes. This option must be an array with WSDL types as keys and names of PHP classes as values. - + As of PHP 8.4.0, keys may also be specified using Clark notation, + in the form {namespace}type, to map a type from a + specific XML namespace, for example + '{http://example.com}foo'. + The typemap option is an array of type mappings. Type mapping is an array with keys type_name, diff --git a/reference/soap/soapserver/setpersistence.xml b/reference/soap/soapserver/setpersistence.xml index 0b257ccd4dba..14ea81b58430 100644 --- a/reference/soap/soapserver/setpersistence.xml +++ b/reference/soap/soapserver/setpersistence.xml @@ -64,7 +64,33 @@ &return.void; - + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.4.0 + + SOAP_PERSISTENCE_SESSION now works when the session + extension is built as a shared module; previously it failed silently. + SoapServer::setPersistence now also throws an + Error when SOAP_PERSISTENCE_SESSION + is requested while the session extension is not available. + + + + + + + &reftitle.examples; diff --git a/reference/soap/soapvar/construct.xml b/reference/soap/soapvar/construct.xml index e021bcee7355..3ab6989a1e28 100644 --- a/reference/soap/soapvar/construct.xml +++ b/reference/soap/soapvar/construct.xml @@ -89,6 +89,15 @@ + + 8.4.0 + + An instance of DateTimeInterface used as the + value for an xsd:dateTime element, or a similar date + and time type, is now serialized to its ISO 8601 representation, instead + of being serialized as an empty string. + + 8.0.3