<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.mongodb-driver-readpreference.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'mongodb-driver-readpreference.construct.php',
    1 => 'MongoDB\\Driver\\ReadPreference::__construct',
    2 => 'Cr&eacute;er un nouveau ReadPreference',
  ),
  'up' => 
  array (
    0 => 'class.mongodb-driver-readpreference.php',
    1 => 'MongoDB\\Driver\\ReadPreference',
  ),
  'prev' => 
  array (
    0 => 'mongodb-driver-readpreference.bsonserialize.php',
    1 => 'MongoDB\\Driver\\ReadPreference::bsonSerialize',
  ),
  'next' => 
  array (
    0 => 'mongodb-driver-readpreference.gethedge.php',
    1 => 'MongoDB\\Driver\\ReadPreference::getHedge',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/mongodb/mongodb/driver/readpreference/construct.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mongodb-driver-readpreference.construct" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">MongoDB\Driver\ReadPreference::__construct</h1>
  <p class="verinfo">(mongodb &gt;=1.0.0)</p><p class="refpurpose"><span class="refname">MongoDB\Driver\ReadPreference::__construct</span> &mdash; <span class="dc-title">Créer un nouveau ReadPreference</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-mongodb-driver-readpreference.construct-description">
  <h3 class="title">Description</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">final</span> <span class="modifier">public</span> <span class="methodname"><strong>MongoDB\Driver\ReadPreference::__construct</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$mode</code></span>, <span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$tagSets</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>, <span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$options</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>)</div>

  <p class="para rdfs-comment">
   Construit un nouveau <span class="classname"><a href="class.mongodb-driver-readpreference.php" class="classname">MongoDB\Driver\ReadPreference</a></span>, qui est un objet de valeur immuable.
  </p>

 </div>


 <div class="refsect1 parameters" id="refsect1-mongodb-driver-readpreference.construct-parameters">
  <h3 class="title">Liste de paramètres</h3>
  <dl>
   
    <dt><code class="parameter">mode</code></dt>
    <dd>
     <p class="para">
      <table class="doctable table">
       <caption><strong>Mode de préférence de lecture</strong></caption>
       
        <thead>
         <tr>
          <th>Valeur</th>
          <th>Description</th>
         </tr>

        </thead>

        <tbody class="tbody">
         <tr>
          <td><code class="literal">&quot;primary&quot;</code></td>
          <td>
           <p class="para">
            Toutes les opérations lues à partir du jeu de réplicas actuel primaire. 
            Il s&#039;agit de la préférence de lecture par défaut pour MongoDB.
           </p>
          </td>
         </tr>

         <tr>
          <td><code class="literal">&quot;primaryPreferred&quot;</code></td>
          <td>
           <p class="para">
            Dans la plupart des situations, les opérations sont lues à partir du 
            primaire, mais s&#039;il n&#039;est pas disponible, les opérations sont lues à
            partir d&#039;un membre secondaire.
           </p>
          </td>
         </tr>

         <tr>
          <td><code class="literal">&quot;secondary&quot;</code></td>
          <td>
           <p class="para">
            Toutes les opérations sont lues à partir des membres secondaires du jeu 
            de réplicas.
           </p>
          </td>
         </tr>

         <tr>
          <td><code class="literal">&quot;secondaryPreferred&quot;</code></td>
          <td>
           <p class="para">
            Dans la plupart des cas, les opérations sont lues par des membres 
            secondaires, mais si aucun membre secondaire n&#039;est disponible, les 
            opérations sont lues à partir du primaire.
           </p>
          </td>
         </tr>

         <tr>
          <td><code class="literal">&quot;nearest&quot;</code></td>
          <td>
           <p class="para">
            Opérations lues à partir du membre du jeu de réplicas ayant la latence 
            réseau la moins élevée, quel que soit le type du membre.
           </p>
          </td>
         </tr>

        </tbody>
       
      </table>

     </p>
    </dd>
   
   
    <dt><code class="parameter">tagSets</code></dt>
    <dd>
     <p class="para">
      Les jeux de tag permettent de cibler des opérations de lecture sur des 
      membres spécifiques d&#039;un jeu de réplicas. Ce paramètre doit être un tableau de 
      tableaux associatifs, qui contiennent chacun zéro ou plusieurs paires 
      clé/valeur. Lors de la sélection d&#039;un serveur pour une opération de lecture, 
      le pilote tente de sélectionner un nœud comportant toutes les balises d&#039;un 
      ensemble (c&#039;est-à-dire le tableau associatif de paires clé/valeur). Si la 
      sélection échoue, le pilote essaiera les jeux suivants. Un jeu de balises vide 
      (<code class="literal">array()</code>) correspond à n&#039;importe quel nœud et peut être 
      utilisé comme secours.
     </p>
     <p class="para">
      Les tags ne sont pas compatibles avec le mode 
      <code class="literal">&quot;primary&quot;</code> et, en général, 
      s&#039;appliquent uniquement lors de la sélection d&#039;un membre secondaire d&#039;un jeu 
      pour une opération de lecture. Toutefois, le mode 
      <code class="literal">&quot;nearest&quot;</code>, lorsqu&#039;il est 
      combiné avec un jeu de balises, sélectionne le membre correspondant avec la 
      latence réseau la plus basse. Ce membre peut être primaire ou secondaire.
     </p>
    </dd>
   
   
    <dt><code class="parameter">options</code></dt>
    <dd>
     <p class="para">
      <table class="doctable table">
       <caption><strong>options</strong></caption>
       
        <thead>
         <tr>
          <th>Option</th>
          <th>Type</th>
          <th>Description</th>
         </tr>

        </thead>

        <tbody class="tbody">
         <tr>
          <td>hedge</td>
          <td><span class="type"><span class="type"><a href="language.types.object.php" class="type object">object</a></span>|<span class="type"><a href="language.types.array.php" class="type array">array</a></span></span></td>
          <td>
           <p class="para">Spécifie si l&#039;on doit utiliser ou non <a href="https://www.mongodb.com/docs/manual/core/sharded-cluster-query-router/#mongos-hedged-reads" class="link external">&raquo;&nbsp;les lectures
            croisées</a>, qui sont supportés depuis MongoDB 4.4+ pour les
            requêtes partagées.</p>
           <p class="para">
            Le serveur des lectures croisées est disponible pour toutes les
            lectures des références non primaires, et est activé par défaut
            lors de l&#039;utilisation du mode <code class="literal">&quot;nearest&quot;</code>. Cette option
            permet d&#039;activer explicitement le serveur des lectures croisées
            pour les lectures des références non primaires en spécifiant
            <code class="literal">[&#039;enabled&#039; =&gt; true]</code>, ou de désactiver explicitement
            le serveur des lectures croisées pour les lectures des références
            <code class="literal">&quot;nearest&quot;</code> en spécifiant
            <code class="literal">[&#039;enabled&#039; =&gt; false]</code>.
           </p>
          </td>
         </tr>

         <tr>
          <td>maxStalenessSeconds</td>
          <td><a href="language.types.integer.php" class="link">entier</a></td>
          <td>
           <p class="para">
            Spécifie un décalage de réplication maximal, ou &quot;obsolescence&quot;, pour 
            les lectures des secondaires. Lorsque l&#039;obsolescence estimée d&#039;un 
            secondaire dépasse cette valeur, le pilote cesse de l&#039;utiliser pour les 
            opérations de lecture.
           </p>
           <p class="para">
            Si elle est spécifiée, l&#039;obsolescence maximale doit être un entier signé 
            32 bits supérieur ou égal à 
            <strong><code><a href="class.mongodb-driver-readpreference.php#mongodb-driver-readpreference.constants.smallest-max-staleness-seconds">MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS</a></code></strong>.
           </p>
           <p class="para">
            Par défaut, 
            <strong><code><a href="class.mongodb-driver-readpreference.php#mongodb-driver-readpreference.constants.no-max-staleness">MongoDB\Driver\ReadPreference::NO_MAX_STALENESS</a></code></strong>, 
            ce qui signifie que le pilote ne prendra pas en compte le décalage d&#039;un 
            secondaire lors du choix de l&#039;endroit où diriger une opération de 
            lecture.
           </p>
           <p class="para">
            Cette option n&#039;est pas compatible avec le mode 
            <code class="literal">&quot;primary&quot;</code>.
            La spécification d&#039;une obsolescence maximale requiert également que 
            toutes les instances MongoDB du déploiement utilisent MongoDB 3.4+. Une 
            exception sera levée au moment de l&#039;exécution si toutes les instances de 
            MongoDB dans le déploiement sont d&#039;une version de serveur plus ancienne.
           </p>
          </td>
         </tr>

        </tbody>
       
      </table>

     </p>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 errors" id="refsect1-mongodb-driver-readpreference.construct-errors">
  <h3 class="title">Erreurs / Exceptions</h3>
  <ul class="simplelist">
   <li>Lance une exception <span class="classname"><strong class="classname">MongoDB\Driver\InvalidArgumentException</strong></span> lors d'une erreur survenue pendant l'analyse d'un argument.</li>
   <li>Lève une exception <span class="classname"><a href="class.mongodb-driver-exception-invalidargumentexception.php" class="classname">MongoDB\Driver\Exception\InvalidArgumentException</a></span> si <code class="parameter">mode</code> est incorrect.</li>
   <li>Lève une exception <span class="classname"><a href="class.mongodb-driver-exception-invalidargumentexception.php" class="classname">MongoDB\Driver\Exception\InvalidArgumentException</a></span> si <code class="parameter">tagSets</code> est fourni pour une préférence de lecture primaire ou est incorrect (c.-à-d. pas un tableau de zéro ou plus de documents).</li>
   <li>Lève une exception <span class="classname"><a href="class.mongodb-driver-exception-invalidargumentexception.php" class="classname">MongoDB\Driver\Exception\InvalidArgumentException</a></span> si l'option <code class="literal">&quot;maxStalenessSeconds&quot;</code> est fournie pour une préférence de lecture primaire ou est hors de la plage.</li>
  </ul>
 </div>


 <div class="refsect1 changelog" id="refsect1-mongodb-driver-readpreference.construct-changelog">
  <h3 class="title">Historique</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Version</th>
       <th>Description</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>PECL mongodb 2.0.0</td>
       <td>
        Passer un <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> pour l&#039;argument <code class="parameter">mode</code>
        n&#039;est plus pris en charge.
       </td>
      </tr>

      <tr>
       <td>PECL mongodb 1.20.0</td>
       <td>
        Passer un <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> pour l&#039;argument <code class="parameter">mode</code>
        est <em>DÉPRÉCIÉ</em>.
       </td>
      </tr>

      <tr>
       <td>PECL mongodb 1.8.0</td>
       <td>
        Ajout de l&#039;option <code class="literal">&quot;hedge&quot;</code>.
       </td>
      </tr>

      <tr>
       <td>PECL mongodb 1.3.0</td>
       <td>
        <p class="para">
         L&#039;argument <code class="parameter">mode</code> accepte maintenant une valeur de 
         chaîne, ce qui est compatible avec l&#039;option URI 
         <code class="literal">&quot;readPreference&quot;</code> pour 
         <span class="function"><a href="mongodb-driver-manager.construct.php" class="function">MongoDB\Driver\Manager::__construct()</a></span>
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL mongodb 1.2.0</td>
       <td>
        <p class="para">
         Ajout d&#039;un troisième argument d&#039;<code class="parameter">options</code>, qui prend 
         en charge l&#039;option <code class="literal">&quot;maxStalenessSeconds&quot;</code> .
        </p>
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>



 <div class="refsect1 examples" id="refsect1-mongodb-driver-readpreference.construct-examples">
  <h3 class="title">Exemples</h3>
  <div class="example" id="example-1">
   <p><strong>Exemple #1 Exemple avec <span class="function"><strong>MongoDB\Driver\ReadPreference::__construct()</strong></span></strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">/* Préférez un nœud secondaire mais retombez sur un primaire. */<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(new </span><span style="color: #0000BB">MongoDB\Driver\ReadPreference</span><span style="color: #007700">(</span><span style="color: #0000BB">MongoDB\Driver\ReadPreference</span><span style="color: #007700">::</span><span style="color: #0000BB">SECONDARY_PREFERRED</span><span style="color: #007700">));<br /><br /></span><span style="color: #FF8000">/* Préférez un nœud dans le centre de données de New York avec la latence la plus basse. */<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(new </span><span style="color: #0000BB">MongoDB\Driver\ReadPreference</span><span style="color: #007700">(</span><span style="color: #0000BB">MongoDB\Driver\ReadPreference</span><span style="color: #007700">::</span><span style="color: #0000BB">NEAREST</span><span style="color: #007700">, [[</span><span style="color: #DD0000">'dc' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'ny'</span><span style="color: #007700">]]));<br /><br /></span><span style="color: #FF8000">/* Nécessite un nœud secondaire dont le décalage de réplication se trouve dans les deux minutes */<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(new </span><span style="color: #0000BB">MongoDB\Driver\ReadPreference</span><span style="color: #007700">(</span><span style="color: #0000BB">MongoDB\Driver\ReadPreference</span><span style="color: #007700">::</span><span style="color: #0000BB">SECONDARY</span><span style="color: #007700">, </span><span style="color: #0000BB">null</span><span style="color: #007700">, [</span><span style="color: #DD0000">'maxStalenessSeconds' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">120</span><span style="color: #007700">]));<br /><br /></span><span style="color: #FF8000">/* Active explicitement le serveur des lectures croisées */<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(new </span><span style="color: #0000BB">MongoDB\Driver\ReadPreference</span><span style="color: #007700">(</span><span style="color: #0000BB">MongoDB\Driver\ReadPreference</span><span style="color: #007700">::</span><span style="color: #0000BB">SECONDARY</span><span style="color: #007700">, </span><span style="color: #0000BB">null</span><span style="color: #007700">, [</span><span style="color: #DD0000">'hedge' </span><span style="color: #007700">=&gt; [</span><span style="color: #DD0000">'enabled' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">true</span><span style="color: #007700">]]));<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>Résultat de l&#039;exemple ci-dessus est similaire à :</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">object(MongoDB\Driver\ReadPreference)#1 (1) {
  [&quot;mode&quot;]=&gt;
  string(18) &quot;secondaryPreferred&quot;
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  [&quot;mode&quot;]=&gt;
  string(7) &quot;nearest&quot;
  [&quot;tags&quot;]=&gt;
  array(1) {
    [0]=&gt;
    object(stdClass)#2 (1) {
      [&quot;dc&quot;]=&gt;
      string(2) &quot;ny&quot;
    }
  }
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  [&quot;mode&quot;]=&gt;
  string(9) &quot;secondary&quot;
  [&quot;maxStalenessSeconds&quot;]=&gt;
  int(120)
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  [&quot;mode&quot;]=&gt;
  string(9) &quot;secondary&quot;
  [&quot;hedge&quot;]=&gt;
  object(stdClass)#1 (1) {
    [&quot;enabled&quot;]=&gt;
    bool(true)
  }
}</pre>
</div>
   </div>
  </div>
 </div>



 <div class="refsect1 seealso" id="refsect1-mongodb-driver-readpreference.construct-seealso">
  <h3 class="title">Voir aussi</h3>
  <ul class="simplelist">
   <li><a href="https://www.mongodb.com/docs/manual/core/read-preference/" class="link external">&raquo;&nbsp;Read Preference reference</a></li>
  </ul>
 </div>


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