(PHP 5, PHP 7, PHP 8)
SoapServer::setPersistence — Sets SoapServer persistence mode
This function allows changing the persistence state of a SoapServer object between requests. This function allows saving data between requests utilizing PHP sessions. This method only has an affect on a SoapServer after it has exported functions utilizing SoapServer::setClass().
Note:
The persistence of
SOAP_PERSISTENCE_SESSION
makes only objects of the given class persistent, but not the class static data. In this case, use $this->bar instead of self::$bar.
Note:
SOAP_PERSISTENCE_SESSION
serializes data on the class object between requests. In order to properly utilize resources (e.g. PDO), __wakeup() and __sleep() magic methods should be utilized.
mode
One of the SOAP_PERSISTENCE_XXX
constants.
SOAP_PERSISTENCE_REQUEST
- SoapServer data does not persist between requests. This is the default behavior of any SoapServer object after setClass is called.
SOAP_PERSISTENCE_SESSION
- SoapServer data persists between requests. This is accomplished by serializing the SoapServer class data into $_SESSION['_bogus_session_name'], because of this session_start() must be called before this persistence mode is set.
No value is returned.
Example #1 SoapServer::setPersistence() example
<?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() {
// We make sure to leave out $resource here, so our session data remains persistent