<?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() {
// Certificamo-nos de deixar $resource de fora aqui, para que nossos dados de sessão permaneçam persistentes
// Não fazer isso resultará em falha durante a desserialização dos dados
// na próxima solicitação; portanto, nosso SoapObject não seria persistente nas solicitações.
return array('myvar1','myvar2');
}
}
try {
session_start();
$server = new SoapServer(null, array('uri' => $_SERVER['REQUEST_URI']));
$server->setClass('MyFirstPersistentSoapServer');
// setPersistence DEVE ser chamado depois de setClass, porque o comportamento de setClass
// define SESSION_PERSISTENCE_REQUEST ao ativar o método.
$server->setPersistence(SOAP_PERSISTENCE_SESSION);
$server->handle();
} catch(SoapFault $e) {
error_log("SOAP ERROR: ". $e->getMessage());
}
?>