<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/memcached.callbacks.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'memcached.callbacks.read-through.php',
    1 => 'Fonctions de rappel sur cl&eacute; absente',
    2 => 'Fonctions de rappel sur cl&eacute; absente',
  ),
  'up' => 
  array (
    0 => 'memcached.callbacks.php',
    1 => 'Fonctions de rappel',
  ),
  'prev' => 
  array (
    0 => 'memcached.callbacks.result.php',
    1 => 'Fonctions de rappel de r&eacute;sultats',
  ),
  'next' => 
  array (
    0 => 'memcached.sessions.php',
    1 => 'Support des sessions',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/memcached/callbacks.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="memcached.callbacks.read-through" class="section">
  <h2 class="title">Fonctions de rappel sur clé absente</h2>
  <p class="para">
   Les fonctions de rappel sur clé absente sont appelées quand un élément ne peut
   pas être lu sur le serveur. La fonction de rappel reçoit un objet Memcached,
   la clé demandée, et une valeur de variable par référence. La fonction de rappel
   est alors responsable d&#039;affecter la valeur, puis de retourner 
   <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> ou <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>. Si la fonction de rappel retourne <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> 
   Memcached va stocker la valeur ainsi créée dans le serveur, et la retourner
   à la fonction appelante. Seules <span class="methodname"><a href="memcached.get.php" class="methodname">Memcached::get()</a></span> et
   <span class="methodname"><a href="memcached.getbykey.php" class="methodname">Memcached::getByKey()</a></span> supportent ces fonctions,
   car le protocole memcache ne fournit aucune information sur l&#039;absence de
   clé dans une requête multiclé.
  </p>
  <div class="example" id="example-1">
   <p><strong>Exemple #1 Fonctions de rappel sur clé absente</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$m </span><span style="color: #007700">= new </span><span style="color: #0000BB">Memcached</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$m</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">addServer</span><span style="color: #007700">(</span><span style="color: #DD0000">'localhost'</span><span style="color: #007700">, </span><span style="color: #0000BB">11211</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$profile_info </span><span style="color: #007700">= </span><span style="color: #0000BB">$m</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get</span><span style="color: #007700">(</span><span style="color: #DD0000">'user:'</span><span style="color: #007700">.</span><span style="color: #0000BB">$user_id</span><span style="color: #007700">, </span><span style="color: #DD0000">'user_info_cb'</span><span style="color: #007700">);<br /><br />function </span><span style="color: #0000BB">user_info_cb</span><span style="color: #007700">(</span><span style="color: #0000BB">$memc</span><span style="color: #007700">, </span><span style="color: #0000BB">$key</span><span style="color: #007700">, &amp;</span><span style="color: #0000BB">$value</span><span style="color: #007700">)<br />{<br />    </span><span style="color: #0000BB">$user_id </span><span style="color: #007700">= </span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$key</span><span style="color: #007700">, </span><span style="color: #0000BB">5</span><span style="color: #007700">);<br />    </span><span style="color: #FF8000">/* Lit un profil dans une base de données */<br />    /* ... */<br />    </span><span style="color: #0000BB">$value </span><span style="color: #007700">= </span><span style="color: #0000BB">$profile_info</span><span style="color: #007700">;<br />    return </span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

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