<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.soapserver.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'soapserver.setpersistence.php',
    1 => 'SoapServer::setPersistence',
    2 => 'Define o modo de persist&ecirc;ncia do SoapServer',
  ),
  'up' => 
  array (
    0 => 'class.soapserver.php',
    1 => 'SoapServer',
  ),
  'prev' => 
  array (
    0 => 'soapserver.setobject.php',
    1 => 'SoapServer::setObject',
  ),
  'next' => 
  array (
    0 => 'class.soapfault.php',
    1 => 'SoapFault',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/soap/soapserver/setpersistence.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="soapserver.setpersistence" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">SoapServer::setPersistence</h1>
  <p class="verinfo">(PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">SoapServer::setPersistence</span> &mdash; <span class="dc-title">Define o modo de persistência do SoapServer</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-soapserver.setpersistence-description">
  <h3 class="title">Descrição</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><strong>SoapServer::setPersistence</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$mode</code></span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>

  <p class="para rdfs-comment">
   Esta função permite alterar o estado de persistência de um objeto SoapServer entre
   solicitações. Esta função permite salvar dados entre solicitações utilizando sessões PHP. Este método
   só tem efeito em um SoapServer após ele ter exportado funções utilizando <span class="methodname"><a href="soapserver.setclass.php" class="methodname">SoapServer::setClass()</a></span>.
  </p>
   <blockquote class="note"><p><strong class="note">Nota</strong>: 
    <p class="para">
     A persistência de <strong><code><a href="soap.constants.php#constant.soap-persistence-session">SOAP_PERSISTENCE_SESSION</a></code></strong> faz apenas
     objetos de uma determinada classe persistentes, mas não os dados estáticos da classe. Neste
     caso, use <var class="varname">$this->bar</var> em vez de self::$bar.
    </p>
   </p></blockquote>
   <blockquote class="note"><p><strong class="note">Nota</strong>: 
    <p class="para">
     <strong><code><a href="soap.constants.php#constant.soap-persistence-session">SOAP_PERSISTENCE_SESSION</a></code></strong> serializa dados no objeto de classe entre solicitações. Para utilizar adequadamente os recursos (por exemplo, <span class="classname"><a href="class.pdo.php" class="classname">PDO</a></span>), <a href="language.oop5.magic.php#object.wakeup" class="link">__wakeup()</a> e <a href="language.oop5.magic.php#object.sleep" class="link">__sleep()</a> métodos mágicos devem ser utilizados.
    </p>
  </p></blockquote>
 </div>


 <div class="refsect1 parameters" id="refsect1-soapserver.setpersistence-parameters">
  <h3 class="title">Parâmetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">mode</code></dt>
     <dd>
      <p class="para">
       Uma das constantes <strong><code><a href="soap.constants.php#constant.soap-persistence-session">SOAP_PERSISTENCE_<span class="replaceable">*</span></a></code></strong>.
      </p>
      <p class="para">
       <strong><code><a href="soap.constants.php#constant.soap-persistence-request">SOAP_PERSISTENCE_REQUEST</a></code></strong> - Os dados do SoapServer não persistem entre
       solicitações. Este é o comportamento <strong>padrão</strong> de qualquer objeto SoapServer
       após setClass ser chamado.
      </p>
      <p class="para">
       <strong><code><a href="soap.constants.php#constant.soap-persistence-session">SOAP_PERSISTENCE_SESSION</a></code></strong> - Os dados do SoapServer persistem entre as solicitações.
       Isso é feito serializando os dados da classe SoapServer em
       <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION['_bogus_session_name']</a></var>, por causa disso
       <span class="function"><a href="function.session-start.php" class="function">session_start()</a></span> deve ser chamado antes que este modo de persistência seja definido.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-soapserver.setpersistence-returnvalues">
  <h3 class="title">Valor Retornado</h3>
  <p class="para">
   Nenhum valor é retornado.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-soapserver.setpersistence-examples">
  <h3 class="title">Exemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Exemplo #1 Exemplo de <span class="function"><strong>SoapServer::setPersistence()</strong></span></strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /> </span><span style="color: #007700">class </span><span style="color: #0000BB">MyFirstPersistentSoapServer </span><span style="color: #007700">{<br />     private </span><span style="color: #0000BB">$resource</span><span style="color: #007700">; </span><span style="color: #FF8000">// (Such as PDO, mysqli, etc..)<br />     </span><span style="color: #007700">public </span><span style="color: #0000BB">$myvar1</span><span style="color: #007700">;<br />     public </span><span style="color: #0000BB">$myvar2</span><span style="color: #007700">;<br /><br />     public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">() {<br />         </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">__wakeup</span><span style="color: #007700">(); </span><span style="color: #FF8000">// We're calling our wakeup to handle starting our resource<br />     </span><span style="color: #007700">}<br /><br />     public function </span><span style="color: #0000BB">__wakeup</span><span style="color: #007700">() {<br />         </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">resource </span><span style="color: #007700">= </span><span style="color: #0000BB">CodeToStartOurResourceUp</span><span style="color: #007700">();<br />     }<br /><br />     public function </span><span style="color: #0000BB">__sleep</span><span style="color: #007700">() {<br />         </span><span style="color: #FF8000">// Certificamo-nos de deixar $resource de fora aqui, para que nossos dados de sessão permaneçam persistentes<br />         // Não fazer isso resultará em falha durante a desserialização dos dados<br />         // na próxima solicitação; portanto, nosso SoapObject não seria persistente nas solicitações.<br />         </span><span style="color: #007700">return array(</span><span style="color: #DD0000">'myvar1'</span><span style="color: #007700">,</span><span style="color: #DD0000">'myvar2'</span><span style="color: #007700">);<br />     }<br /> }<br /><br /> try {<br />     </span><span style="color: #0000BB">session_start</span><span style="color: #007700">();<br />     </span><span style="color: #0000BB">$server </span><span style="color: #007700">= new </span><span style="color: #0000BB">SoapServer</span><span style="color: #007700">(</span><span style="color: #0000BB">null</span><span style="color: #007700">, array(</span><span style="color: #DD0000">'uri' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'REQUEST_URI'</span><span style="color: #007700">]));<br />     </span><span style="color: #0000BB">$server</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">setClass</span><span style="color: #007700">(</span><span style="color: #DD0000">'MyFirstPersistentSoapServer'</span><span style="color: #007700">);<br />     </span><span style="color: #FF8000">// setPersistence DEVE ser chamado depois de setClass, porque o comportamento de setClass<br />     // define SESSION_PERSISTENCE_REQUEST ao ativar o método.<br />     </span><span style="color: #0000BB">$server</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">setPersistence</span><span style="color: #007700">(</span><span style="color: #0000BB">SOAP_PERSISTENCE_SESSION</span><span style="color: #007700">);<br />     </span><span style="color: #0000BB">$server</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">handle</span><span style="color: #007700">();<br /> } catch(</span><span style="color: #0000BB">SoapFault $e</span><span style="color: #007700">) {<br />     </span><span style="color: #0000BB">error_log</span><span style="color: #007700">(</span><span style="color: #DD0000">"SOAP ERROR: "</span><span style="color: #007700">. </span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">());<br /> }<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-soapserver.setpersistence-seealso">
  <h3 class="title">Veja Também</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="methodname"><a href="soapserver.setclass.php" class="methodname" rel="rdfs-seeAlso">SoapServer::setClass()</a> - Define a classe que trata as solicita&ccedil;&otilde;es SOAP</span></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>