krisanalfa/bono-cache

Bono PHP 框架的 Laravel 缓存管理器

0.1.0 2014-04-04 05:52 UTC

This package is auto-updated.

Last update: 2024-08-29 03:31:23 UTC


README

#BonoCache Bono PHP 框架的 Laravel 缓存

##配置 将以下行添加到您的配置文件中。

'bono.providers' => array(
    '\\KrisanAlfa\\Cache\\Provider\\CacheProvider'
),

'cache' => array(
    'driver' => 'file',
    'path' => __DIR__ . '/../../cache',
    'prefix' => 'bono',
)

配置包含三个设置,分别是 driverpathprefix

####驱动器 此选项控制在使用缓存库时默认的缓存 "驱动器"。当然,您可以在任何时候使用其他驱动器。

支持的驱动器

  • 现在: filearrayapc
  • 以后: normredismemcached

####路径 当使用 file 缓存驱动器时,我们需要一个绝对位置来存储缓存文件。

##缓存使用

存储缓存项

$app->cache->put('key', 'value', $minutes);

使用 Carbon 对象设置过期时间

$expiresAt = Carbon::now()->addMinutes(10);

$app->cache->put('key', 'value', $expiresAt); // cache will be expired at 10 minutes later

如果缓存项不存在则存储缓存项

$app->cache->add('key', 'value', $minutes);

add 方法将在实际 添加 缓存项时返回 true。否则,该方法将返回 false

检查缓存中是否存在

if ($app->cache->has('key'))
{
    //
}

从缓存中检索项

$value = $app->cache->get('key');

检索项或返回默认值

$value = $app->cache->get('key', 'default');

$value = $app->cache->get('key', function() { return 'default'; });

永久存储缓存项

$app->cache->forever('key', 'value');

有时您可能希望从缓存中检索项,但如果请求的项不存在,则存储默认值。您可以使用 $app->cache->remember 方法来完成此操作

$value = $app->cache->remember('users', $minutes, function()
{
    return Norm::factory('User')->find();
});

您还可以将 rememberforever 方法结合起来使用

$value = $app->cache->rememberForever('users', function()
{
    return Norm::factory('User')->find();
});

请注意,所有存储在缓存中的项都是序列化的,因此您可以自由地存储任何类型的数据。

从缓存中删除项

$app->cache->forget('key');

缓存标签

注意:当使用 file 缓存驱动器时,不支持缓存标签。此外,当使用存储 "永久" 的缓存且具有多个标签时,性能最佳的是类似 memcached 这样的驱动器,它将自动清除陈旧记录。

缓存标签允许您对缓存中相关项进行标记,然后清除所有带有给定名称的缓存标签。要访问带有标签的缓存,请使用 tags 方法

访问带有标签的缓存

您可以通过传递一个有序的标签名称列表作为参数,或作为有序的标签名称数组来存储带有标签的缓存。

$app->cache->tags('people', 'authors')->put('Alfa', $alfa, $minutes);

$app->cache->tags(array('people', 'artists'))->put('Ganesha', $ganesha, $minutes);

您可以将任何缓存存储方法与标签结合使用,包括 rememberforeverrememberForever。您还可以从带有标签的缓存中访问缓存项,以及使用其他缓存方法,如 incrementdecrement

访问带有标签的缓存中的项

要访问带有标签的缓存,请传递用于保存它的相同有序标签列表。

$ganesha = $app->cache->tags('people', 'artists')->get('Ganesha');

$alfa = $app->cache->tags(array('people', 'authors'))->get('Alfa');

您可以通过名称或名称列表删除所有带有标签的项。例如,此语句将删除所有带有 peopleauthors 或两者的缓存标签。因此,"Ganesha" 和 "Alfa" 都将从缓存中删除。

$app->cache->tags('people', 'authors')->flush();

相比之下,此语句将仅删除带有 authors 标签的缓存,因此 "Alfa" 将被删除,但 "Ganesha" 不会。

$app->cache->tags('authors')->flush();

##更多信息 有关 Laravel 缓存的更多信息,请参阅 此文档