apcu_entry

(PECL apcu >= 5.1.0)

apcu_entry — Автоматичне вилучення або створення запису в кеші

Опис

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

Автоматично намагається знайти запис із заданим ключем key. Якщо не може, то викликається генератор generator і йому передається ключ key як єдиний аргумент. Згенероване значення заноситься в кеш із зазначеним ttl та повертається.

Зауваження: Коли контроль передається apcu_entry(), проводиться ексклюзивне блокування кешу, яке знімається після завершення роботи apcu_entry(): це призводить до того, що тіло генератора generator міститься в критичну секцію, забороняючи двом процесам запустити виконання однакового коду конкурентно. До того ж, це призводить до заборони конкурентного запуску будь-яких інших функцій APCu, оскільки вони виставлятимуть те ж саме блокування.

Увага

Єдина функція APCu, яку можна безпечно викликати у генераторі generator - це apcu_entry()

Список параметрів

key

Ідентифікатор запису

generator

Callback-функция, принимающая один параметрkey і повертає значення для кешування.

ttl

Время жизни; переменнаяvar буде зберігатися протягом ttl секунд. Як тільки ttlсекунд пройдут, переменная будет удалена из кеша (при следующем запросе). Если параметрttlне задан (илиttlзадан как ), значення буде зберігатися доки не буде видалено явно, або з технічної причини (очищення кешу, перезапуск і т.д.)

Значення, що повертаються

Повертає закешоване значення

Приклади

Приклад #1 Приклад використання apcu_entry()****

Loading...

Результат виконання наведеного прикладу:

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"
  }
}

Дивіться також

  • apcu_store() - Кешує змінну
  • apcu_fetch() - Витягує з кеша збережену змінну
  • apcu_delete() - Видаляє збережене значення з кешу