<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.yar-server.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'yar-server.construct.php',
    1 => 'Yar_Server::__construct',
    2 => 'Cr&eacute;e un serveur RPC',
  ),
  'up' => 
  array (
    0 => 'class.yar-server.php',
    1 => 'Yar_Server',
  ),
  'prev' => 
  array (
    0 => 'class.yar-server.php',
    1 => 'Yar_Server',
  ),
  'next' => 
  array (
    0 => 'yar-server.handle.php',
    1 => 'Yar_Server::handle',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/yar/yar_server/construct.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="yar-server.construct" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">Yar_Server::__construct</h1>
  <p class="verinfo">(PECL yar &gt;= 1.0.0)</p><p class="refpurpose"><span class="refname">Yar_Server::__construct</span> &mdash; <span class="dc-title">Crée un serveur RPC</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-yar-server.construct-description">
  <h3 class="title">Description</h3>
  <div class="constructorsynopsis dc-description">
   <span class="modifier">final</span> <span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><strong>Yar_Server::__construct</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.object.php" class="type object">object</a></span> <code class="parameter">$executor</code></span>)</div>

  <p class="simpara">
   Crée un serveur Yar HTTP RPC. Toutes les méthodes publiques de
   <code class="parameter">executor</code> sont enregistrées comme services RPC.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-yar-server.construct-parameters">
  <h3 class="title">Liste de paramètres</h3>
  <dl>
   
    <dt><code class="parameter">executor</code></dt>
    <dd>
     <p class="simpara">
      Tout objet dont les méthodes publiques devraient être exposées comme
      services RPC. Les méthodes protégées et privées, ainsi que les méthodes
      dont le nom commence par un tiret bas, ne sont pas exposées.
     </p>
     <p class="simpara">
      L&#039;exécuteur peut optionnellement définir deux méthodes magiques
      protégées, reconnues par
      <span class="methodname"><a href="yar-server.handle.php" class="methodname">Yar_Server::handle()</a></span> et jamais exposées
      comme points d&#039;entrée RPC :
     </p>
     <ul class="itemizedlist">
      <li class="listitem">
       <p class="simpara">
        <code class="literal">protected function __info(string $markup):
        string</code> — depuis Yar 2.3.0. Appelée lorsque la page
        d&#039;information du service est demandée ; elle reçoit le contenu de
        la page que Yar aurait sinon affichée, et si elle retourne une
        <a href="language.types.string.php" class="link">chaîne de caractères</a>, cette chaîne est envoyée au client à la place. Voir
        <span class="methodname"><a href="yar-server.handle.php" class="methodname">Yar_Server::handle()</a></span>.
       </p>
      </li>
      <li class="listitem">
       <p class="simpara">
        <code class="literal">protected function __auth(string $provider, string
        $token): bool</code> — depuis Yar 2.3.0. Appelée au tout
        début de chaque requête avec les champs
        <code class="literal">provider</code> et <code class="literal">token</code> de
        l&#039;en-tête de requête, définis par le client avec les options
        <strong><code><a href="yar.constants.php#constant.yar-opt-provider">YAR_OPT_PROVIDER</a></code></strong> et
        <strong><code><a href="yar.constants.php#constant.yar-opt-token">YAR_OPT_TOKEN</a></code></strong>. Retourner exactement
        <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> rejette la requête ; toute autre valeur de retour la
        laisse s&#039;exécuter. Voir
        <span class="methodname"><a href="yar-server.handle.php" class="methodname">Yar_Server::handle()</a></span>.
       </p>
      </li>
     </ul>
     <p class="simpara">
      Les deux méthodes ne prennent effet que lorsqu&#039;elles sont
      <code class="literal">protected</code> ; une méthode publique ou privée
      portant le même nom est ignorée.
     </p>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-yar-server.construct-returnvalues">
  <h3 class="title">Valeurs de retour</h3>
  <p class="simpara">
   Une instance de <span class="classname"><a href="class.yar-server.php" class="classname">Yar_Server</a></span>.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-yar-server.construct-examples">
  <h3 class="title">Exemples</h3>
  <div class="example" id="example-1">
   <p><strong>Exemple #1 Exemple avec <span class="methodname"><strong>Yar_Server::__construct()</strong></span></strong></p>
   <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
</span><span style="color: #007700">class </span><span style="color: #0000BB">API </span><span style="color: #007700">{
    </span><span style="color: #FF8000">/**
     * Le bloc de documentation est affiché sur la page d'information du service.
     * @param string $parameter
     * @return string
     */
    </span><span style="color: #007700">public function </span><span style="color: #0000BB">some_method</span><span style="color: #007700">(</span><span style="color: #0000BB">$parameter</span><span style="color: #007700">, </span><span style="color: #0000BB">$option </span><span style="color: #007700">= </span><span style="color: #DD0000">"foo"</span><span style="color: #007700">) {
         return </span><span style="color: #DD0000">"some_method"</span><span style="color: #007700">;
    }

    protected function </span><span style="color: #0000BB">client_can_not_see</span><span style="color: #007700">() {
    }
}

</span><span style="color: #0000BB">$service </span><span style="color: #007700">= new </span><span style="color: #0000BB">Yar_Server</span><span style="color: #007700">(new </span><span style="color: #0000BB">API</span><span style="color: #007700">());
</span><span style="color: #0000BB">$service</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">handle</span><span style="color: #007700">();
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
   </div>

  </div>
 </div>


 <div class="refsect1 seealso" id="refsect1-yar-server.construct-seealso">
  <h3 class="title">Voir aussi</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="methodname"><a href="yar-server.handle.php" class="methodname" rel="rdfs-seeAlso">Yar_Server::handle()</a> - D&eacute;marre le serveur RPC</span></li>
   </ul>
  </p>
 </div>


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