PHP Conference Japan 2024

SoapServer::setClass

(PHP 5, PHP 7, PHP 8)

SoapServer::setClass設定處理 SOAP 請求的類別

說明

public SoapServer::setClass(字串 $class, 混合 ...$args): void

從指定的類別匯出所有方法。

可以使用 SoapServer::setPersistence() 方法,讓物件在給定 PHP 工作階段的請求之間保持持續性。

參數

class

匯出類別的名稱。

args

這些選用參數將在物件建立期間傳遞給預設的類別建構函式。

回傳值

不回傳任何值。

參見

新增註釋

使用者貢獻的註釋 2 則註釋

Ariz Jacinto
16 年前
如果您希望您的 SOAP 用戶端能夠儲存然後擷取物件屬性,您需要將 SOAP 伺服器設定為持續性,方法是設定 session.auto_start=0,呼叫 session_start(),並以以下方式使用 SoapServer->setPersistence(SOAP_PERSISTENCE_SESSION)

<?php
//設定 ini
ini_set("soap.wsdl_cache_enabled", 0);
ini_set("session.auto_start", 0);

//類別檔案
require_once('MyClass.php');

//為了持續性工作階段
session_start();

//服務
$server = new SoapServer('service.wsdl');
$server->setClass("MyClass");
$server->setPersistence(SOAP_PERSISTENCE_SESSION);
$server->handle();
?>
christiaan at oakfox dot net
15 年前
您也可以在使用 __autoload($class_name) 時,透過以下方式擷取物件屬性。

<?php

# 啟動 Session
session_start();

# 需要時自動載入類別
function __autoload($class_name)
{
require_once
"/var/www/example/class/". $class_name. ".php";
}

//服務

$_SESSION[_bogus_session_name] = unserialize($_SESSION[_bogus_session_name]);
$server = new SoapServer('service.wsdl');
$server->setClass("MyClass");
$server->setPersistence(SOAP_PERSISTENCE_SESSION);
$server->handle();
$_SESSION[_bogus_session_name] = serialize($_SESSION[_bogus_session_name])

?>
To Top