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() - Видаляє збережене значення з кешу