11<?xml version =" 1.0" encoding =" utf-8" ?>
2- <!-- EN-Revision: 1a42637cd40d0f75af1435ff051c7caa9b1c83e0 Maintainer: lacatoire Status: ready -->
2+ <!-- EN-Revision: d3a03f8f542cd083d793bbd8ef3d7756aae7711f Maintainer: lacatoire Status: ready -->
33
44<refentry xml : id =" yac.delete" xmlns =" http://docbook.org/ns/docbook" xmlns : xlink =" http://www.w3.org/1999/xlink" >
55 <refnamediv >
1717 <simpara >
1818 Supprime un ou plusieurs éléments du cache.
1919 </simpara >
20+ <note >
21+ <simpara >
22+ La suppression est implémentée en marquant l'entrée comme expirée
23+ plutôt qu'en vidant son slot : l'entrée cesse immédiatement d'être
24+ lisible, mais le slot reste occupé jusqu'à ce que la même clé soit
25+ stockée à nouveau ou qu'une écriture ultérieure le récupère. En
26+ conséquence, le nombre de slots utilisés rapporté par
27+ <methodname >Yac::info</methodname > ne diminue pas après une
28+ suppression, et <methodname >Yac::dump</methodname > liste toujours
29+ l'entrée supprimée jusqu'à ce que son slot soit recyclé ; un
30+ <literal >ttl</literal > non nul dans le passé indique une entrée
31+ supprimée ou expirée, il appartient donc à l'appelant de les
32+ filtrer dans la sortie de <methodname >Yac::dump</methodname >.
33+ </simpara >
34+ </note >
2035 </refsect1 >
2136
2237 <refsect1 role =" parameters" >
4964 &reftitle.returnvalues;
5065 <simpara >
5166 Retourne &true; en cas de succès, ou &false; si la clé n'était pas
52- présente dans le cache.
67+ présente dans le cache. Comme une suppression ne fait que marquer
68+ l'entrée comme expirée, une clé supprimée mais pas encore écrasée est
69+ toujours considérée comme présente : supprimer la même clé à nouveau
70+ retourne &true; .
71+ </simpara >
72+ <simpara >
73+ Quand un <type >array</type > de clés est fourni, &true; est retourné
74+ uniquement si toutes les clés étaient présentes ; si une clé est
75+ absente, &false; est retourné.
5376 </simpara >
5477 </refsect1 >
5578
6386$yac = new Yac();
6487$yac->set("foo", "bar");
6588
66- var_dump($yac->delete("foo")); // bool(true)
67- var_dump($yac->delete("foo")); // bool(false): déjà supprimé
89+ var_dump($yac->delete("foo")); // bool(true) : marquée expirée
90+ var_dump($yac->get("foo")); // bool(false) : manquant désormais
91+ var_dump($yac->delete("foo")); // bool(true) à nouveau : le slot n'a pas
92+ // encore été écrasé
93+ var_dump($yac->delete("jamais")); // bool(false) : jamais stockée
94+
95+ // une suppression ne libère pas le slot : slots_used ne diminue pas, et
96+ // l'entrée expirée apparaît toujours dans le dump
97+ var_dump($yac->info()["slots_used"]); // int(1)
98+ print_r($yac->dump()); // "foo" est toujours listée ; son ttl
99+ // est dans le passé
68100
69- // suppression différée : garder l'entrée lisible encore 60 secondes,
70- // elle disparaît seulement après ce délai
101+ // suppression différée : garder l'entrée lisible encore 60 secondes
71102$yac->set("tmp", "value");
72- var_dump($yac->delete("tmp", 60)); // bool(true)
103+ var_dump($yac->delete("tmp", 60)); // bool(true)
73104
74- // supprimer plusieurs clés à la fois
75- var_dump($yac->delete(array("a", "b")));
105+ // supprimer plusieurs clés à la fois retourne true uniquement si toutes
106+ // les clés étaient présentes
107+ var_dump($yac->delete(array("tmp", "non"))); // bool(false) : "non" absente
76108?>
77109]]>
78110 </programlisting >
@@ -85,6 +117,8 @@ var_dump($yac->delete(array("a", "b")));
85117 <simplelist >
86118 <member ><methodname >Yac::set</methodname ></member >
87119 <member ><methodname >Yac::flush</methodname ></member >
120+ <member ><methodname >Yac::info</methodname ></member >
121+ <member ><methodname >Yac::dump</methodname ></member >
88122 </simplelist >
89123 </para >
90124 </refsect1 >
0 commit comments