slick/cache

Slick 框架的缓存组件

v1.2.1 2016-04-07 12:05 UTC

This package is auto-updated.

Last update: 2024-09-20 10:54:40 UTC


README

Latest Version Software License Build Status Coverage Status Quality Score Total Downloads

Slick 缓存包与您系统上安装的缓存服务提供商兼容。

它自带对 Memcached (memcached 守护进程) 和 文件 (将数据缓存到文件中) 的支持,但同时也定义了一个驱动器接口,允许您向您的项目添加自己的驱动器。

安装

通过 Composer

$ composer require slick/cache

使用方法

要使用缓存驱动器,您只需要调用 Cache::get() 静态方法来获取一个初始化的缓存驱动器。查看以下示例

use Slick\Cache\Cache;

$cache = Cache::get();
$data = $cache->get('data', false);

if (!$data) {
    $data = file_get_contents("http://www.example.com/api/call.json");
    $cache->set('data', $data);
}

在这个示例中,我们使用默认的缓存驱动器和默认选项,来存储一些昂贵的 API 调用数据。

注意

默认驱动器是 Memcached,以下为默认选项

  • duration => 120
  • host => ‘127.0.0.1’
  • port => 11211

更改缓存过期时间

当您在缓存驱动器上设置值时,过期时间总是被设置。如上所述,默认设置为 120 秒。使用上述示例,我们将从我们虚构的 API 调用数据中的过期时间设置为 3 分钟。

use Slick\Cache\Cache;

$cache = Cache::get();
$data = $cache->get('data', false);
if (!$data) {
    $data = file_get_contents("http://www.example.com/api/call.json");
    // Set expire to 3 minutes
    $cache->set('data', $data, 3*60);
}

也可以为所有 Cache::set() 定义一个全局的过期时间,如下所示

use Slick\Cache\Cache;

$cache = Cache::get();
// Set global cache expire to 10 minutes
$cache->duration = 10*60;

$data = $cache->get('data', false);
if (!$data) {
    $data = file_get_contents("http://www.example.com/api/call.json");
    // This will use the 10 minutes setting from above
    $cache->set('data', $data);
}

Slick\Cache\DriverInterface::set()

使用给定的键设置/存储一个值。如果未在过期参数中设置值,则将使用默认的 Cache::duration

public DriverInterface DriverInterface::set(string $key, mixed $value [, int $expire = -1])

Slick\Cache\DriverInterface::get()

检索之前存储的值。您可以可选地设置在缓存驱动器没有提供键的值时返回的值。

public mixed DriverInterface::get(string $key [, mixed $default = false])

Slick\Cache\DriverInterface::erase()

使用给定的键删除存储的值。您可以使用“?”和“"通配符来删除所有匹配的键。 "?" 表示一个未知字符的占位符,“" 是多个字符的占位符。

public DriverInterface DriverInterface::erase(string $key)

警告

“?”和“*”占位符的使用仅在 Slick 缓存组件提供的驱动器中实现。如果您创建自己的缓存驱动器,则需要处理占位符键搜索实现。

技巧

如果您正在实现自己的缓存驱动器并希望拥有“?”和“*”占位符搜索,可以扩展 Slick\Cache\Driver\AbstractDriver,它使用 DriverInterface::get()DriverInterface::set() 方法来实现通配符键搜索功能。

测试

$ vendor/bin/phpunit

贡献

有关详细信息,请参阅 CONTRIBUTING

安全性

如果您发现任何与安全相关的问题,请通过电子邮件 silvam.filipe@gmail.com 而不是使用问题跟踪器。

鸣谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件