flightphp/cache
Легка, проста та автономна PHP-бібліотека для кешування у файлах, відгалужена від Wruczek/PHP-File-Cache
Переваги
- Легка, автономна та проста
- Весь код в одному файлі - ніяких зайвих драйверів.
- Безпечна - кожен згенерований файл кешу має PHP-заголовок з die, що робить прямий доступ неможливим, навіть якщо хтось знає шлях і ваш сервер налаштований неправильно
- Добре задокументована та протестована
- Коректно обробляє конкурентність через flock
- Підтримує PHP 7.4+
- Безкоштовна за ліцензією MIT
Цей сайт документації використовує цю бібліотеку для кешування кожної зі сторінок!
Натисніть тут, щоб переглянути код.
Встановлення
Встановіть через composer:
composer require flightphp/cacheВикористання
Використання досить просте. Це зберігає файл кешу в директорії кешу.
use flight\Cache;
$app = Flight::app();
// Ви передаєте директорію, де буде зберігатися кеш, у конструктор
$app->register('cache', Cache::class, [ __DIR__ . '/../cache/' ], function(Cache $cache) {
// Це гарантує, що кеш буде використовуватися лише в режимі продакшену
// ENVIRONMENT - це константа, яка встановлюється у вашому bootstrap-файлі або в іншому місці вашого застосунку
$cache->setDevMode(ENVIRONMENT === 'development');
});Отримання значення кешу
Використовуйте метод get() для отримання кешованого значення. Якщо вам потрібен зручний метод, який оновить кеш, якщо він застарів, ви можете використовувати refreshIfExpired().
// Отримати екземпляр кешу
$cache = Flight::cache();
$data = $cache->refreshIfExpired('simple-cache-test', function () {
return date("H:i:s"); // повернути дані для кешування
}, 10); // 10 секунд
// або
$data = $cache->get('simple-cache-test');
if(empty($data)) {
$data = date("H:i:s");
$cache->set('simple-cache-test', $data, 10); // 10 секунд
}Зберігання значення кешу
Використовуйте метод set() для збереження значення в кеші.
Flight::cache()->set('simple-cache-test', 'my cached data', 10); // 10 секундВидалення значення кешу
Використовуйте метод delete() для видалення значення в кеші.
Flight::cache()->delete('simple-cache-test');Перевірка наявності значення кешу
Використовуйте метод exists() для перевірки, чи існує значення в кеші.
if(Flight::cache()->exists('simple-cache-test')) {
// зробити щось
}Отримання метаданих кешу
Якщо ви хочете витягнути мітки часу та інші метадані про запис кешу, переконайтеся, що передаєте true як правильний параметр.
$data = $cache->refreshIfExpired("simple-cache-meta-test", function () {
echo "Refreshing data!" . PHP_EOL;
return date("H:i:s"); // повернути дані для кешування
}, 10, true); // true = повернути з метаданими
// або
$data = $cache->get("simple-cache-meta-test", true); // true = повернути з метаданими
/*
Приклад кешованого елемента, отриманого з метаданими:
{
"time":1511667506, <-- unix мітка часу збереження
"expire":10, <-- час закінчення дії в секундах
"data":"04:38:26", <-- десеріалізовані дані
"permanent":false
}
Використовуючи метадані, ми можемо, наприклад, обчислити, коли елемент був збережений або коли він закінчується
Ми також можемо отримати доступ до самих даних за допомогою ключа "data"
*/
$expiresin = ($data["time"] + $data["expire"]) - time(); // отримати unix мітку часу, коли дані закінчуються, і відняти від неї поточну мітку часу
$cacheddate = $data["data"]; // ми отримуємо доступ до самих даних за допомогою ключа "data"
echo "Latest cache save: $cacheddate, expires in $expiresin seconds";Вихідний код
Відвідайте https://github.com/flightphp/cache, щоб переглянути код.