SoapServer::setPersistence

(PHP 5, PHP 7, PHP 8)

SoapServer::setPersistenceSoapServer の持続モードを設定する

説明

publicSoapServer::setPersistence(int$mode): void

この関数により、SoapServer オブジェクトの永続状態をリクエスト間で変更できるようになります。 この関数は、リクエスト間でのデータの保存に PHP のセッションを使います。 このメソッドが SoapServer に影響を及ぼすのは、SoapServer::setClass() を使って関数をエクスポートした後となります。

注意:

持続モード SOAP_PERSISTENCE_SESSION は、そのクラスのオブジェクトについてのみ持続させます。 クラスのスタティックなデータについては対象となりません。 self::$bar ではなく $this->bar を使用しましょう。

注意:

SOAP_PERSISTENCE_SESSION は、クラスのオブジェクト上のデータもリクエスト間でシリアライズします。 リソース (PDO など) を適切に扱うには、マジックメソッド __wakeup() および __sleep() を使う必要があります。

パラメータ

mode

SOAP_PERSISTENCE_XXX 定数のうちの一つ

SOAP_PERSISTENCE_REQUEST - SoapServer のデータはリクエスト間で持続しません。 これは、SoapServer オブジェクトで setClass をコールした直後のデフォルトの挙動です。

SOAP_PERSISTENCE_SESSION - SoapServer のデータをリクエスト間で持続させます。 これを実現するために、SoapServer クラスのデータをシリアライズして $_SESSION['_bogus_session_name'] に格納します。 そのため、このモードを設定する前に session_start() をコールしておく必要があります。

戻り値

値を返しません。

例1 SoapServer::setPersistence() の例

<?php
class MyFirstPersistentSoapServer {
private
$resource; // (Such as PDO, mysqli, etc..)
public $myvar1;
public
$myvar2;

public function
__construct() {
$this->__wakeup(); // We're calling our wakeup to handle starting our resource
}

public function
__wakeup() {
$this->resource = CodeToStartOurResourceUp();
}

public function
__sleep() {
// We make sure to leave out $resource here, so our session data remains persistent

参考

To Top