首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SoapServer::setPersistence

(PHP 5 >= 5.1.2, PHP 7)

SoapServer::setPersistence — Sets SoapServer persistence mode

Description

代码语言:javascript
复制
public void SoapServer::setPersistence ( int $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.

Parameters

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.

Return Values

No value is returned.

Examples

Example #1 SoapServer::setPersistence() example

代码语言:javascript
复制
<?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
?????????//?Failure?to?do?so?will?result?in?the?failure?during?the?unserialization?of?data
?????????//?on?the?next?request;?thus,?our?SoapObject?would?not?be?persistent?across?requests.
?????????return?array('myvar1','myvar2');
?????}
?}

?try?{
?????session_start();
?????$server?=?new?SoapServer(null,?array('uri'?=>?$_SERVER['REQUEST_URI']));
?????$server->setClass('MyFirstPersistentSoapServer');
?????//?setPersistence?MUST?be?called?after?setClass,?because?setClass's
?????//?behavior?sets?SESSION_PERSISTENCE_REQUEST?upon?enacting?the?method.
?????$server->setPersistence(SOAP_PERSISTENCE_SESSION);
?????$server->handle();
?}?catch(SoapFault?$e)?{
?????error_log("SOAP?ERROR:?".?$e->getMessage());
?}
?>

See Also

  • SoapServer::setClass() - Sets the class which handles SOAP requests

← SoapServer::setObject

SoapServer::SoapServer →

代码语言:txt
复制
 ? 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com