SoapServer::setClass

(PHP 5, PHP 7, PHP 8)

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

说明

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

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

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

参数

class

要导出的类的名称。

args

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

返回值

不返回值。

参见

添加注释

用户贡献的注释 3 个注释

4
Ariz Jacinto
15 年前
如果希望 SOAP 客户端能够保存和检索对象属性,则需要通过设置 session.auto_start=0、调用 session_start() 以及 SoapServer->setPersistence(SOAP_PERSISTENCE_SESSION) 来设置 SOAP 服务器为持久性,如下所示:

<?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();
?>
4
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])

?>
-50
funky2step at gmail dot com
12 年前
将参数传递给默认的类构造函数时,请确保不要尝试使用魔法 __construct 方法,因为这样将不起作用。

<?php

class MyClass
{
function
MyClass($arg1, $arg2)
{

}
}

// 不用:

class MyClass
{
function
__construct($arg1, $arg2)
{

}
}

?>
To Top