dburiy/filecacher

简单的PHP文件缓存器

1.1.0 2022-01-29 10:59 UTC

This package is auto-updated.

Last update: 2024-09-29 05:21:43 UTC


README

Total Downloads License: MIT visitor badge

安装

安装此包的推荐方法是使用Composer

$ composer require dburiy/filecacher

如何使用

初始化

$cacher_dir = __DIR__ . '/cacher'; 
$cacher = new \Dburiy\FileCacher($cacher_dir);

存储数据

$lifetime = 10; // time in second
$data = "some string";
$cacher->set("storage_strings_str1", $data, $lifetime);

# Result:
# Will be created file in cache dir: `[dir]/storage/strings/str1`
# with data: `some string`

获取数据

$default = "some default value";
$callback = function (){
    return time();
};

# if cache not found or expire
$cacher->get("key");            # return null
$cacher->get("key", $default);  # return string "some default value"
$cacher->get("key", $callback); # return timestamp

删除数据

$cacher->delete("key");

与PSR兼容

use Dburiy\FileCacher;
use Dburiy\PsrBridge\FileCacher as PsrCacher;

include __DIR__ . '/../vendor/autoload.php';

$cacher = new PsrCacher(new FileCacher(__DIR__ . '/cache'));

$item = $cacher
    ->getItem('test')
    ->expiresAfter(DateInterval::createFromDateString('1 min'))
//    ->expiresAfter(10) // seconds
//    ->expiresAt(new DateTime('2022-01-29T13:02:00', new DateTimeZone('europe/moscow')))
    ->set(['value' => time()])
;
$cacher->save($item);
//$cacher->saveDeferred($item);
//$cacher->commit();

var_dump($item->get());

if (!$item->isHit()) {
    $cacher->deleteItem('test');
}