pllano / cache
Caching for API Shop
1.0.2
2018-02-08 22:52 UTC
Requires
- php: >=5.4.0
- cache/cache: 1.0.0
Requires (Dev)
- cache/cache: 1.0.0
This package is not auto-updated.
Last update: 2024-11-02 17:14:40 UTC
README
Демо и тесты
- Демо - https://xti.com.ua/
- Тест скорости - https://developers.google.com/speed/pagespeed/insights/?url=https://xti.com.ua
Поддерживаемые типы кеша
memcached
- стабильноmemcache
- стабильноfilesystem
- стабильноjson
- стабильноpredis
- стабильноredis
- стабильноmongodb
- стабильноelasticsearch
- в разработкеapcu
- дорабатывается (обнаружены ошибки вcache/cache
)apc
- дорабатывается (обнаружены ошибки вcache/cache
)array
- дорабатываетсяilluminate
- дорабатываетсяdoctrine
- дорабатывается
Конфигурация
Передать конфигурацию можно двумя способами:
- Из фала
cache_config.json
- Массивом в конструктор
$config = [];
Использование
use Pllano\Caching\Cache; // Передать конфигурацию в конструктор // Если передать пустой массив [] возмет конфигурацию из файла cache_config.json $cache_config = []; $key = 'site/index'; // Передать url или ключ без кодирования // $key = 'https://example.com/to/patch?param=data/lang=ru'; // При мультиязычности рекомендуется добавлять язык $cache_lifetime = 30*24*60*60; // Установить время жизни кеша. в примере установлено 30 дней. // Подключить класс $cache = new Cache($cache_config); // Установить путь к файлу конфигурации // $path = __DIR__ . '/../configs/'; // $cache->set_config($path); // Проверяем статус кеширования и наличие кеша if ($cache->run($key, $cache_lifetime) === null) { // Контент для сохранения передается в виде массива $content = []; // Получаем массив данных из базы // Если кеширование включено сохраняем кеш if ((int)$cache->state() == 1) { $cache->set($content, $key); } } else { // Если кеширование включено и кеш существует вернет массив данных из кеша $content = $cache->get($key); }
Передать html код
// $cache->run_html(); // $cache->set_html(); // $cache->get_html(); if ($cache->run_html($key, $cache_lifetime) === null) { if ((int)$cache->state() == 1) { $cache->set_html($content, $key); } } else { $content = $cache->get_html($key); }
Установка
Подключить с помощью Composer
"require" { ... - "pllano/cache": "1.0.1", + "pllano/cache": "1.0.2", ... }
Подключить с помощью AutoRequire
{ "require": [{ "namespace": "Pllano\\Caching", "dir": "/pllano/cache/src", "link": "https://github.com/pllano/cache/archive/master.zip", "git": "https://github.com/pllano/cache", "name": "cache", "version": "master", "vendor": "pllano", "state": "1", "system_package": "1" }, { "namespace": "Cache", "dir": "/cache/cache/src", "link": "https://github.com/php-cache/cache/archive/1.0.0.zip", "git": "https://github.com/php-cache/cache", "name": "cache", "version": "1.0.0", "vendor": "cache", "state": "1", "system_package": "0" }, { "namespace": "Predis", "dir": "/predis/predis/src", "link": "https://github.com/nrk/predis/archive/v1.1.1.zip", "git": "https://github.com/nrk/predis", "name": "predis", "version": "1.1.1", "vendor": "predis", "state": "1", "system_package": "0" }, { "namespace": "League\\Flysystem", "dir": "/league/flysystem/src", "link": "https://github.com/thephpleague/flysystem/archive/1.0.42.zip", "git": "https://github.com/thephpleague/flysystem", "name": "flysystem", "version": "1.0.42", "vendor": "league", "state": "1", "system_package": "0" }, { "namespace": "Psr\\SimpleCache", "dir": "/psr/simple-cache/src", "link": "https://github.com/php-fig/simple-cache/archive/1.0.0.zip", "git": "https://github.com/php-fig/simple-cache", "name": "simple-cache", "version": "1.0.0", "vendor": "psr", "state": "1", "system_package": "1" }, { "namespace": "Psr\\Log", "dir": "/psr/log/Psr/Log", "link": "https://github.com/php-fig/log/archive/1.0.2.zip", "git": "https://github.com/php-fig/log", "name": "log", "version": "1.0.2", "vendor": "psr", "state": "1", "system_package": "1" }, { "namespace": "Doctrine\\Common\\Cache", "dir": "/doctrine/cache/lib/Doctrine/Common/Cache", "link": "https://github.com/doctrine/cache/archive/v1.6.2.zip", "git": "https://github.com/doctrine/cache", "name": "cache", "version": "1.6.2", "vendor": "doctrine", "state": "1", "system_package": "1" } ] }