PHP 8.4.1 Released!

apcu_entry

(PECL apcu >= 5.1.0)

apcu_entry Récupère atomiquement ou génère une entrée de cache

Description

apcu_entry(string $key, callable $generator, int $ttl = 0): mixed

Tente de récupérer atomiquement la valeur indexée par la clé key dans le cache. Si elle ne peut pas être récupérée, la fonction passée à generator est appelée, avec pour unique argument la valeur contenue dans key. La valeur de retour de l'appel est ensuite mise en cache avec le paramètre optionnel ttl, puis rend la main.

Note: Lorsque le contrôle entre dans apcu_entry() le verrou du cache est acquis de façon exclusive. Il est libéré lorsque le contrôle quitte apcu_entry(): Plus précisément, le corps de la fonction passée à generator devient une section critique, ce qui interdit à deux processus d'exécuter la même partie du code concurrentiellement. En outre, il interdit l'exécution concurrentielle de tout autre fonction APCu, puisqu'elle acquerra le même verrou.

Avertissement

La seule fonction qui peut être appelée en toute sécurité par generator est apcu_entry().

Liste de paramètres

key

Clé d'une entrée de cache.

generator

Un paramètre de type callable qui prend key pour unique argument et retourne la valeur à mettre en cache.

ttl

Durée de vie; stocke la variable var dans le cache pour une durée de ttl secondes. Après l'expiration de ttl, la variable stockée sera retirée du cache (à la prochaine requête). Si aucune valeur n'est passée au paramètre ttl (ou si la valeur de ttl est 0), la variable persistera jusqu'à qu'elle soit retirée manuellement du cache, ou, sinon, elle échouera à sortir du cache (lors d'un effaçage, redémarrage, etc.).

Valeurs de retour

Retourne la valeur mise en cache.

Exemples

Exemple #1 Un exemple avec apcu_entry()

<?php
$config
= apcu_entry("config", function($key) {
return [
"fruit" => apcu_entry("config.fruit", function($key){
return [
"apples",
"pears"
];
}),
"people" => apcu_entry("config.people", function($key){
return [
"bob",
"joe",
"niki"
];
})
];
});

var_dump($config);
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["fruit"]=>
  array(2) {
    [0]=>
    string(6) "apples"
    [1]=>
    string(5) "pears"
  }
  ["people"]=>
  array(3) {
    [0]=>
    string(3) "bob"
    [1]=>
    string(3) "joe"
    [2]=>
    string(4) "niki"
  }
}

Voir aussi

  • apcu_store() - Met en cache une variable dans le dépôt de données
  • apcu_fetch() - Récupère une variable stockée dans le cache
  • apcu_delete() - Retire une variable stockée du cache

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top