Skip to content
Anton edited this page Dec 15, 2016 · 35 revisions

Описание

Данный класс лишь враппер для ленивой инициализации адаптеров кеширования, ну и чтобы ничего не ломалось, даже если кеш пытаемся использовать без подключенного кеширования. Так же есть возможность вешать метки на определенные ключи (тегировать)

Настройка

с версии 7.1.0 изменилась структура конфигурации пакета, фреймворк переехал на использование пакета cache/cache

Пример настройки для работы с файлами:

// config file cache.phpreturnarray(
"enabled" => true,
"adapter" => "filesystem",
"pools" => array(
/** * @link https://github.com/php-cache/filesystem-adapter */"filesystem" => function() {
$filesystemAdapter = new \League\Flysystem\Adapter\Local(PATH_DATA . '/cache');
$filesystem = new \League\Flysystem\Filesystem($filesystemAdapter);
returnnew \Cache\Adapter\Filesystem\FilesystemCachePool($filesystem);
}
)
);

Пример настройки для работы с Predis:

// config file cache.phpreturnarray(
"enabled" => true,
"adapter" => "predis",
"pools" => array(
/** * @link https://github.com/php-cache/predis-adapter * @link https://github.com/nrk/predis/wiki/Connection-Parameters * @link https://github.com/nrk/predis/wiki/Client-Options */"predis" => function() {
$client = new \Predis\Client('tcp:/127.0.0.1:6379');
returnnew \Cache\Adapter\Predis\PredisCachePool($client);
}
)
);

Примеры конфигурации других адаптеров вы сможете найти на странице http://www.php-cache.com/en/latest/#cache-pool-implementations

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

Код контроллера:

useBluz\Proxy\Cache;
if (!$data = Cache::get('key')) {
$data = 1*2*3*4*5; // any calculation
Cache::set('key', $data, /*TTL in seconds*/60)
}

Работа с тегами (работает не со всеми адаптерами http://www.php-cache.com/en/latest/#cache-pool-implementations):

useBluz\Proxy\Cache;
Cache::set('user.profile.42', $data, 3600, ['user', 'profile']);
Cache::clearTags(['user']);

с версии 7.1.0 появилась поддержка PSR-6

Работа с адаптером согласно PSR-6:

useBluz\Proxy\Cache;
if ($cachePool = Cache::getInstance()) {
$item = $cachePool->getItem('key');
$item->get();
$item->set('value');
$cachePool->save($item);
}

необходимо помнить, что если кеширование будет отключено, то Cache::getInstance() === false

Использования произвольного адаптера

с версии 0.9.1

В некоторых случаях требуется механизм кеширования отличный от использованного по умолчанию, тогда следует использовать следующий подход (адаптер redis сконфигурирован, но не задан как дефолтный):

useBluz\Proxy\Cache;
$adapter = Cache::getInstance()->getAdapter('redis');
// follow PSR-6$item = $adapter->getItem('user.profile.42');
echo$item->get();

Статистика

Для отображения статистики APC достаточно найти файл apc.php:

find / -name apc.php* 2>/dev/null

И затем уже его вызвать (настройки доступа описаны внутри скрипта).

Аналогичный скрипт написан и для memcache:

Для работы с Redis рекомендую утилиту Redis Desktop Manager

Clone this wiki locally