Download the PHP package arrilot/bitrix-cacher without Composer
On this page you can find all versions of the php package arrilot/bitrix-cacher. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package bitrix-cacher
Данный пакет больше активно не поддерживается
Причина - мы больше не используем Битрикс в своих проектах. Если вам интересен этот проект и вы хотите заняться его поддержкой - форкните его и создайте Issue в данном репозитории чтобы мы поместили здесь ссылку на форк.
Bitrix Cacher - обёртка над ядром Bitrix для более удобного кэширования PHP-переменных
Установка
- Регистрируем пакет в
init.php
-Arrilot\BitrixCacher\ServiceProvider::register();
Использование
Через метод
Для удобства рекомендуется добавить глобальный хэлпер:
и использовать его либо вместо Cache::remember()
, либо как начало цепочки построения кэша CacheBuilder-а
Обратите внимание, что в отличии от CPHPCache::InitCache()
(и его аналога из d7) по-умолчанию $initDir = '/'
, а не false.
Это значит, что по-умолчанию кэш доступен для всего сайта.
Через CacheBuilder
Кэширование в php-переменную
В случаях, когда возможен многократный вызов одного и того же кэша (т.е. с одними и теми же параметрами key, initDir, baseDir) в течение выполнения одного скрипта,
разумно добавлять дополнительное кэширование в php переменную, чтобы не дергать внешнее хранилище с кэшем (файлы, memcache и т д) просто так несколько раз.
С использованием CacheBuilder это сделать очень просто - надо добавить ->enablePhpLayer()
в цепочку построения кэша.
Если есть потребность кэшировать вообще только в php-переменную (не трогая внешнее хранилище), то это делается вот так:
Время кэширования в этом случае уже, конечно, не имеет смысла.
Аборт кэша
Если вы хотите отменить создание кэша в execute, то необходимо выкинуть исключение Arrilot\BitrixCacher\AbortCacheException
Цепочка execute при этом вернёт null, это значение можно изменить при помощи ->whenAbort([])->
или ->whenAbort(function () { return 'some message'; })->
Отладка
Пакет предоставляет дополнительное окно отладки в котором можно посмотреть
- сколько и каких мы сделали запросов в кэш,
- сколько хитов,
- сколько мисов,
- сколько запросов с нулевым TTL и которые не кэшируются, соответственно, вообще