From e806dc451da68c004b09f6a6c7d969309830fff3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AD=A6=E7=94=B0=20=E6=86=B2=E5=A4=AA=E9=83=8E?= Date: Sun, 27 Sep 2026 12:31:04 +0900 Subject: [PATCH] =?UTF-8?q?soap=20=E3=82=92=E5=8E=9F=E6=96=87=E3=81=AE?= =?UTF-8?q?=E5=A4=89=E6=9B=B4=E3=81=AB=E8=BF=BD=E5=BE=93=20(5=E3=83=95?= =?UTF-8?q?=E3=82=A1=E3=82=A4=E3=83=AB)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit soap の 5 ファイルを原文の変更に追従しました。これで soap モジュールの未訳・要更新はなくなります。 原文では php/doc-en@d20d66d(php/doc-en#5735)で、PHP 8.4 での次の変更が記載されました。 - `SoapClient::$typemap` の型が resource から配列に変わり、このプロパティの説明が追加されました - `SoapClient::__construct()` と `SoapServer::__construct()` の classmap オプションで、キーを Clark 記法で指定できることが追記されました - `SoapServer::setPersistence()` の changelog に、session 拡張モジュールを共有モジュールとしてビルドした場合も `SOAP_PERSISTENCE_SESSION` が動作するようになったことと、session 拡張モジュールが使えない場合に `Error` をスローするようになったことが追加されました - `SoapVar::__construct()` の changelog に、`DateTimeInterface` の値が空文字列ではなく ISO 8601 形式でシリアライズされるようになったことが追加されました あわせて、Clark notation の訳語を「Clark 記法」に揃えるため、同じ機能を説明している PHP 8.4 の移行ガイドの「クラーク式記法」も直しています。 ## 対象ファイル reference/soap/ (5) — soapclient.xml, soapclient/construct.xml, soapserver/construct.xml, soapserver/setpersistence.xml, soapvar/construct.xml appendices/migration84/ (1) — new-features.xml --- appendices/migration84/new-features.xml | 4 +-- reference/soap/soapclient.xml | 14 +++++--- reference/soap/soapclient/construct.xml | 8 ++++- reference/soap/soapserver/construct.xml | 9 ++++-- reference/soap/soapserver/setpersistence.xml | 34 ++++++++++++++++++-- reference/soap/soapvar/construct.xml | 10 +++++- 6 files changed, 65 insertions(+), 14 deletions(-) diff --git a/appendices/migration84/new-features.xml b/appendices/migration84/new-features.xml index 07fb2c304d2..7c3e9afccdf 100644 --- a/appendices/migration84/new-features.xml +++ b/appendices/migration84/new-features.xml @@ -536,8 +536,8 @@ $object = $reflector->newLazyGhost($initializer); SOAP - クラスマップでの名前空間のクラーク式記法のサポートが追加されました。 - クラスマップ内でクラーク式記法を使用して、 + クラスマップでの名前空間の Clark 記法のサポートが追加されました。 + クラスマップ内で Clark 記法を使用して、 特定の名前空間の型を特定のクラスに解決するエントリを指定できるようになりました。 例: '{http://example.com}foo' => 'FooClass' diff --git a/reference/soap/soapclient.xml b/reference/soap/soapclient.xml index 887dfe7498f..14bb621c2ae 100644 --- a/reference/soap/soapclient.xml +++ b/reference/soap/soapclient.xml @@ -1,6 +1,6 @@ - + <classname>SoapClient</classname> クラス @@ -73,7 +73,7 @@ private - resourcenull + arraynull typemap null @@ -488,8 +488,14 @@ typemap - - + + XML から PHP への独自の型変換に使う型マッピングの配列です。 + 型マッピングが設定されていない場合は &null; です。 + PHP 8.4.0 以降、このプロパティは array 型です。 + これより前のバージョンでは resource 型でした。 + このプロパティを is_resource でチェックしているコードは、 + それに合わせて修正する必要があります。 + diff --git a/reference/soap/soapclient/construct.xml b/reference/soap/soapclient/construct.xml index c273375c00c..df41713728a 100644 --- a/reference/soap/soapclient/construct.xml +++ b/reference/soap/soapclient/construct.xml @@ -1,6 +1,6 @@ - + @@ -405,6 +405,12 @@ __get() が コールされる点にも注意して下さい。 + + PHP 8.4.0 以降では、特定の XML 名前空間の型をマッピングするために、 + {namespace}type 形式の Clark 記法でキーを指定することもできます。 + たとえば '{http://example.com}foo' のように指定します。 + 同じ型名が複数の名前空間で定義されている場合に役立ちます。 + diff --git a/reference/soap/soapserver/construct.xml b/reference/soap/soapserver/construct.xml index 48ca4b0c2ea..f072336dc7a 100644 --- a/reference/soap/soapserver/construct.xml +++ b/reference/soap/soapserver/construct.xml @@ -1,6 +1,6 @@ - + @@ -44,12 +44,15 @@ 内部の文字エンコーディング (encoding), アクターの URI (actor) を指定することができます。 - + classmap オプションにより、WSDL 型を PHP のクラスにマッピングすることが可能です。 このオプションには、キーとしてWSDL 型、値として PHP クラスの名前を持つ配列を指定する必要があります。 - + PHP 8.4.0 以降では、特定の XML 名前空間の型をマッピングするために、 + {namespace}type 形式の Clark 記法でキーを指定することもできます。 + たとえば '{http://example.com}foo' のように指定します。 + typemap オプションは、型マッピングの配列です。 この配列のキーは type_name、 diff --git a/reference/soap/soapserver/setpersistence.xml b/reference/soap/soapserver/setpersistence.xml index 68106797aa6..305476d26ac 100644 --- a/reference/soap/soapserver/setpersistence.xml +++ b/reference/soap/soapserver/setpersistence.xml @@ -1,6 +1,6 @@ - + @@ -26,7 +26,7 @@ 持続モード SOAP_PERSISTENCE_SESSION は、そのクラスのオブジェクトについてのみ持続させます。 - クラスのスタティックなデータについては対象となりません。 + クラスの static なデータについては対象となりません。 self::$bar ではなく $this->bar を使用しましょう。 @@ -75,7 +75,35 @@ &return.void; - + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.4.0 + + session 拡張モジュールが共有モジュールとしてビルドされている場合も + SOAP_PERSISTENCE_SESSION が動作するようになりました。 + これより前のバージョンでは、この場合は黙って失敗していました。 + 一方、session 拡張モジュールが利用できない状態で + SOAP_PERSISTENCE_SESSION を指定すると、 + SoapServer::setPersistence が + Error をスローするようになりました。 + + + + + + + &reftitle.examples; diff --git a/reference/soap/soapvar/construct.xml b/reference/soap/soapvar/construct.xml index 393394bdc20..9b43194e61f 100644 --- a/reference/soap/soapvar/construct.xml +++ b/reference/soap/soapvar/construct.xml @@ -1,6 +1,6 @@ - + @@ -92,6 +92,14 @@ + + 8.4.0 + + xsd:dateTime など、日付や時刻を表す型の要素の値に + DateTimeInterface のインスタンスを使うと、 + 空文字列ではなく ISO 8601 形式でシリアライズされるようになりました。 + + 8.0.3