slick / cache
Slick 框架的缓存组件
Requires
- league/flysystem: ^1.0
- slick/common: @dev
Requires (Dev)
- behat/behat: ~3.0.4
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
This package is auto-updated.
Last update: 2024-09-20 10:54:40 UTC
README
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)。有关更多信息,请参阅 许可证文件。