PHP Conference Japan 2024

SoapServer::setClass

(PHP 5、PHP 7、PHP 8)

SoapServer::setClass设置处理 SOAP 请求的类

描述

public SoapServer::setClass(string $class, mixed ...$args): void

导出指定类中的所有方法。

可以使用 SoapServer::setPersistence() 方法使对象在给定 PHP 会话的请求之间保持持久性。

参数

class

导出的类的名称。

args

这些可选参数将在对象创建期间传递给默认的类构造函数。

返回值

不返回值。

参见

添加注释

用户贡献的注释 2 条注释

4
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();
?>
3
christiaan at oakfox dot net
15 年前
在使用 __autoload($class_name) 时,您也可以通过以下方式检索对象属性。

<?php

# 启动会话
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