2017-25 © Pedro Peláez
 

library bitrix-cacher

image

arrilot/bitrix-cacher

  • Tuesday, March 20, 2018
  • by Arrilot
  • Repository
  • 3 Watchers
  • 11 Stars
  • 1,230 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 3 Forks
  • 0 Open issues
  • 11 Versions
  • 18 % Grown

The README.md

Latest Stable Version, (*1)

Данный пакет больше активно не поддерживается

Причина - мы больше не используем Битрикс в своих проектах. Если вам интересен этот проект и вы хотите заняться его поддержкой - форкните его и создайте Issue в данном репозитории чтобы мы поместили здесь ссылку на форк., (*2)

Bitrix Cacher - обёртка над ядром Bitrix для более удобного кэширования PHP-переменных

Установка

  1. composer require arrilot/bitrix-cacher
  2. Регистрируем пакет в init.php - Arrilot\BitrixCacher\ServiceProvider::register();

Использование

Через метод


use Arrilot\BitrixCacher\Cache; use Arrilot\BitrixCacher\AbortCacheException; $result = Cache::remember('cacheKeyHere', 3600, function () { $result = 0; for ($i = 0; $i < 20000000; $i++) { $result += $i; } if ( // something bad happened ) { // выполнит $obCache->AbortDataCache() и вернёт null в качестве $result throw new AbortCacheException(); } return $result; });

Для удобства рекомендуется добавить глобальный хэлпер:, (*3)

/**
 * @param null|string $key
 * @param null|int $seconds
 * @param null|Closure $callback
 * @param string $initDir
 * @param string $basedir
 * @return \Arrilot\BitrixCacher\CacheBuilder|mixed
 */
function cache($key = null, $seconds = null, $callback = null, $initDir = '/', $basedir = 'cache')
{
    if (func_num_args() === 0) {
        return new \Arrilot\BitrixCacher\CacheBuilder();
    }

    return \Arrilot\BitrixCacher\Cache::remember($key, $seconds, $callback, $initDir, $basedir);
}

и использовать его либо вместо Cache::remember(), либо как начало цепочки построения кэша CacheBuilder-а, (*4)

Обратите внимание, что в отличии от CPHPCache::InitCache() (и его аналога из d7) по-умолчанию $initDir = '/', а не false. Это значит, что по-умолчанию кэш доступен для всего сайта., (*5)

Через CacheBuilder


$result = cache() ->key('cacheKeyHere') ->seconds(3600) // также доступны методы minutes(), hours(), days() ->initDir('/foo') // можно опустить если хотим использовать значение по-умолчанию ->baseDir('cache/foo') // можно опустить если хотим использовать значение по-умолчанию ->execute(function () { ... return ...; });

Кэширование в php-переменную

В случаях, когда возможен многократный вызов одного и того же кэша (т.е. с одними и теми же параметрами key, initDir, baseDir) в течение выполнения одного скрипта, разумно добавлять дополнительное кэширование в php переменную, чтобы не дергать внешнее хранилище с кэшем (файлы, memcache и т д) просто так несколько раз. С использованием CacheBuilder это сделать очень просто - надо добавить ->enablePhpLayer() в цепочку построения кэша., (*6)


$result = cache() ->key('cacheKeyHere') ->seconds(3600) ->enablePhpLayer() ->execute(function () { ... return ...; });

Если есть потребность кэшировать вообще только в php-переменную (не трогая внешнее хранилище), то это делается вот так:, (*7)


$result = cache() ->key('cacheKeyHere') ->onlyPhpLayer() ->execute(function () { ... return ...; });

Время кэширования в этом случае уже, конечно, не имеет смысла., (*8)

Аборт кэша

Если вы хотите отменить создание кэша в execute, то необходимо выкинуть исключение Arrilot\BitrixCacher\AbortCacheException Цепочка execute при этом вернёт null, это значение можно изменить при помощи ->whenAbort([])-> или ->whenAbort(function () { return 'some message'; })->, (*9)

Отладка

Пакет предоставляет дополнительное окно отладки в котором можно посмотреть - сколько и каких мы сделали запросов в кэш, - сколько хитов, - сколько мисов, - сколько запросов с нулевым TTL и которые не кэшируются, соответственно, вообще, (*10)

The Versions

20/03 2018

dev-master

9999999-dev https://github.com/Arrilot/bitrix-cacher

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

by Nekrasov Ilya

cache bitrix

01/02 2018

2.2.0

2.2.0.0 https://github.com/Arrilot/bitrix-cacher

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

by Nekrasov Ilya

cache bitrix

27/11 2017

2.1.0

2.1.0.0 https://github.com/Arrilot/bitrix-cacher

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

by Nekrasov Ilya

cache bitrix

11/07 2017

2.0.2

2.0.2.0 https://github.com/Arrilot/bitrix-cacher

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

by Nekrasov Ilya

cache bitrix

11/07 2017

2.0.1

2.0.1.0 https://github.com/Arrilot/bitrix-cacher

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

by Nekrasov Ilya

cache bitrix

25/06 2017

2.0.0

2.0.0.0 https://github.com/Arrilot/bitrix-cacher

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

by Nekrasov Ilya

cache bitrix

20/04 2017

1.3.0

1.3.0.0 https://github.com/Arrilot/bitrix-cacher

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

by Nekrasov Ilya

cache bitrix

22/01 2017

1.2.0

1.2.0.0 https://github.com/Arrilot/bitrix-cacher

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

by Nekrasov Ilya

cache bitrix

14/02 2016

1.1.0

1.1.0.0 https://github.com/Arrilot/bitrix-cacher

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

by Nekrasov Ilya

cache bitrix

21/08 2015

1.0.0

1.0.0.0 https://github.com/Arrilot/bitrix-cacher

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

by Nekrasov Ilya

cache bitrix

20/08 2015

0.1.0

0.1.0.0 https://github.com/Arrilot/bitrix-cacher

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

by Nekrasov Ilya

cache bitrix