phpday 2025 - Call For Papers

SoapServer::setClass

(PHP 5, PHP 7, PHP 8)

SoapServer::setClassУстанавливает класс, который обрабатывает SOAP-запросы

Описание

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

Экспортирует все методы из указанного класса.

Чтобы сохранить объект для каждого последующего запроса в рамках данной PHP-сессии, можно использовать метод SoapServer::setPersistence().

Список параметров

class

Имя экспортируемого класса.

args

Эти необязательные параметры будут переданы конструктору класса при создания объекта.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

Добавить

Примечания пользователей 2 notes

up
4
Ariz Jacinto
16 years ago
If you want your SOAP client to be able to save and then retrieve the object properties, you need to set the SOAP server to be persistent by setting session.auto_start=0, invoking session_start(), and SoapServer->setPersistence(SOAP_PERSISTENCE_SESSION) in the following manner:

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

//class file
require_once('MyClass.php');

//for persistent session
session_start();

//service
$server = new SoapServer('service.wsdl');
$server->setClass("MyClass");
$server->setPersistence(SOAP_PERSISTENCE_SESSION);
$server->handle();
?>
up
3
christiaan at oakfox dot net
15 years ago
You can also retrieve object properties the following way while using __autoload($class_name).

<?php

# Start Session
session_start();

# Auto Load Class as Required
function __autoload($class_name)
{
require_once
"/var/www/example/class/". $class_name. ".php";
}

//service

$_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