">
  • <table id="x1fzj"><tr id="x1fzj"><sub id="x1fzj"></sub></tr></table>
    <dd id="x1fzj"><meter id="x1fzj"></meter></dd>
  • <var id="x1fzj"><input id="x1fzj"><dfn id="x1fzj"></dfn></input></var>
  • <menuitem id="x1fzj"><input id="x1fzj"><s id="x1fzj"></s></input></menuitem>
    <dd id="x1fzj"><tr id="x1fzj"></tr></dd>
    <menuitem id="x1fzj"><label id="x1fzj"><legend id="x1fzj"></legend></label></menuitem>
    <form id="x1fzj"></form>
  • SoapServer::setPersistence

    (PHP 5, PHP 7, PHP 8)

    SoapServer::setPersistenceSets SoapServer persistence mode

    說明

    public SoapServer::setPersistence(int $mode): void

    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().

    注意:

    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.

    注意:

    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.

    參數(shù)

    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.

    返回值

    沒有返回值。

    范例

    示例 #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
             // 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());
     }
    ?>

    參見