rundiz/simple-cache

简单易用的PHP缓存驱动,用于缓存任何PHP数据类型。

3.0.1 2023-11-03 06:49 UTC

This package is auto-updated.

Last update: 2024-09-03 08:32:05 UTC


README

简单易用的PHP缓存驱动,用于缓存任何PHP数据类型。它实现了PSR-16。

Latest Stable Version License Total Downloads

安装

确保已安装Composer,然后运行以下命令。

composer require rundiz/simple-cache

示例

我们目前支持APC、APCu、Memcache、Memcached、文件系统驱动。以下是每个驱动类的初始化方式。

// For Memcache driver
$memcache = new \Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$SimpleCache = new \Rundiz\SimpleCache\Drivers\Memcached($memcache);
unset($memcache);

// For Memcached driver
$memcached = new \Memcached;
$memcached->addServer('localhost', 11211) or die ("Could not connect");
$SimpleCache = new \Rundiz\SimpleCache\Drivers\Memcached($memcached);
unset($memcached);

// For APC (deprecated, use APCu instead).
$SimpleCache = new \Rundiz\SimpleCache\Drivers\Apc();

// For APCu
$SimpleCache = new \Rundiz\SimpleCache\Drivers\Apcu();

// For File system (very basic cache driver)
$SimpleCache = new \Rundiz\SimpleCache\Drivers\FileSystem();

// For memory cache (This is using PHP array, if class was unset everything will be removed)
$SimpleCache = new \Rundiz\SimpleCache\Drivers\Memory();

获取、设置、删除或其他常见方法,请参阅PSR-16 文档
示例。

// To get or fetch cache data.
$SimpleCache->get('cache_key');

// To get multiple cache data.
$SimpleCache->getMultiple(['cache_key1', 'cache_key2']);

// To check cache exists.
$SimpleCache->has('cache_key');

// To save cache data.
$SimpleCache->set('cache_key', 'cache data. (any type of data... string, integer, double, array, object, etc.)', 90);

// To save multiple cache data.
$SimpleCache->setMultiple([
    'cache_key1' => 'string value',
    'cache_key2' => 12345,
], 90);

// To delete cache.
$SimpleCache->delete('cache_key');

// To delete multiple cache.
$SimpleCache->deleteMultiple(['cache_key1', 'cache_key2']);

// To clear all cached.
$SimpleCache->clear();

后备缓存驱动

您可以为后备设置多个缓存驱动,以防服务器上未安装某些驱动。

if (class_exists('\\Memcached')) {
    $memcached = new \Memcached;
    $memcached->addServer('localhost', 11211) or die ("Could not connect");
    $SimpleCache = new \Rundiz\SimpleCache\Drivers\Memcached($memcached);
    unset($memcached);
} elseif (class_exists('\\Memcache')) {
    $memcache = new \Memcache;
    $memcache->connect('localhost', 11211) or die ("Could not connect");
    $SimpleCache = new \Rundiz\SimpleCache\Drivers\Memcached($memcache);
    unset($memcache);
} elseif (function_exists('apcu_fetch')) {
    $SimpleCache = new \Rundiz\SimpleCache\Drivers\Apcu();
} else {
    $SimpleCache = new \Rundiz\SimpleCache\Drivers\FileSystem();
}

文件系统缓存的命名空间/子文件夹

在文件系统缓存中,您只需在缓存ID中添加 "."(点)即可使用命名空间或子文件夹。
例如: $SimpleCache->set('Model.Accounts.id1', $userdata, 120);
这将把缓存文件保存到 Model/Accounts/id1 文件夹。