Fonctions de rappel
Fonctions de rappel de résultats Les fonctions de rappel de résultats (type callable) sont appelées par les fonctions Memcached::getDelayed ou Memcached::getDelayedBykey, pour chaque élément du jeu de résultat. Les fonctions de rappel reçoivent un objet Memcached et un tableau avec les informations sur l'élément. La fonction de rappel n'a pas besoin de retourner quoi que ce soit. Exemple de fonction de rappel de résultats addServer('localhost', 11211); $items = array( 'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3' ); $m->setMulti($items); $m->getDelayed(array('key1', 'key3'), true, 'result_cb'); function result_cb($memc, $item) { var_dump($item); } ?> ]]> &example.outputs.similar; string(4) "key1" ["value"]=> string(6) "value1" ["cas"]=> float(49) } array(3) { ["key"]=> string(4) "key3" ["value"]=> string(6) "value3" ["cas"]=> float(50) } ]]>
Fonctions de rappel sur clé absente 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'affecter la valeur, puis de retourner &true; ou &false;. Si la fonction de rappel retourne &true; Memcached va stocker la valeur ainsi créée dans le serveur, et la retourner à la fonction appelante. Seules Memcached::get et Memcached::getByKey supportent ces fonctions, car le protocole memcache ne fournit aucune information sur l'absence de clé dans une requête multiclé. Fonctions de rappel sur clé absente addServer('localhost', 11211); $profile_info = $m->get('user:'.$user_id, 'user_info_cb'); function user_info_cb($memc, $key, &$value) { $user_id = substr($key, 5); /* Lit un profil dans une base de données */ /* ... */ $value = $profile_info; return true; } ?> ]]>