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

# apcu_entry

(PECL apcu >= 5.1.0)

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

### Description

function apcu_entry(string `$key`, callable `$callback`, 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 à `callback` est appelée, avec pour unique argument `key`. La valeur de retour de l'appel est ensuite mise en cache avec le paramètre optionnel `ttl`, puis le résultat est retourné.

> 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 à `callback` 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 toute autre fonction APCu, puisqu'elle acquerra le même verrou.

Avertissement

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

### Liste de paramètres

`key`
  Clé d'une entrée de cache.
`callback`
  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 le retour de `callback` en cache pour une durée de `ttl` secondes. Après l'expiration de `ttl`, l'entrée 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'à ce qu'elle soit retirée manuellement du cache, ou, sinon, cesse d'exister dans le cache (vidage, 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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open