yiisoft/cache-file

Yii 缓存库 - 文件处理器

3.1.0 2023-10-09 14:49 UTC

This package is auto-updated.

Last update: 2024-09-16 07:33:22 UTC


README

Yii

Yii 缓存库 - 文件处理器


Latest Stable Version Total Downloads Build status Scrutinizer Code Quality Code Coverage Mutation testing badge static analysis type-coverage

此包实现了基于文件的PSR-16缓存。

需求

  • PHP 8.0或更高版本。

安装

可以使用Composer安装此包。

composer require yiisoft/cache-file

配置

在创建\Yiisoft\Cache\File\FileCache实例时,必须指定存储缓存文件的基准目录的路径

$cache = new \Yiisoft\Cache\File\FileCache('/path/to/directory');

更改新创建目录的权限

$cache = new \Yiisoft\Cache\File\FileCache('/path/to/directory', 0777); // default is 0775

此值将由PHP chmod()函数使用。不会应用umask。默认值为0775,表示目录对所有者组和组可读写,但对其他用户只读。

更改缓存文件的扩展名

$cache = $cache->withFileSuffix('.txt'); // default is '.bin'

更改新创建缓存文件的权限

$cache = $cache->withFileMode(0644); // default is null

此值将由PHP chmod()函数使用。不会应用umask。如果未设置,权限将由当前环境决定。

更改存储缓存文件的分目录级别

$cache = $cache->withDirectoryLevel(3); // default is 1

如果系统有大量缓存文件(例如,一百万个),则可以使用更大的值(通常不超过3)。使用子目录主要是为了确保文件系统不会被单个目录中的太多文件所压垮。

更改在缓存中存储数据时执行垃圾回收的概率

$cache = $cache->withGcProbability(1000); // default is 10

当在缓存中存储数据片段时,应执行垃圾回收(GC)的概率(百万分之一)。默认值为10,表示0.001%的机会。此数字应在0到1000000之间。值为0表示根本不会执行GC。

通用用法

此包不包含任何与缓存交互的附加功能,除了在PSR-16接口中定义的功能。

$cache = new \Yiisoft\Cache\File\FileCache('/path/to/directory');
$parameters = ['user_id' => 42];
$key = 'demo';

// try retrieving $data from cache
$data = $cache->get($key);

if ($data === null) {
    // $data is not found in cache, calculate it from scratch
    $data = calculateData($parameters);
    
    // store $data in cache for an hour so that it can be retrieved next time
    $cache->set($key, $data, 3600);
}

// $data is available here

要删除值,可以使用

$cache->delete($key);
// Or all cache
$cache->clear();

为了更有效地处理值,应使用批处理操作

  • getMultiple()
  • setMultiple()
  • deleteMultiple()

此包可以用作Yii 缓存库的缓存处理器。

文档

如果您需要帮助或有任何问题,Yii 论坛是一个不错的选择。您还可以查看其他Yii 社区资源

许可证

Yii 缓存库 - 文件处理器是免费软件。它根据BSD许可证发布。有关更多信息,请参阅LICENSE

Yii 软件维护。

支持项目

Open Collective

关注更新

Official website Twitter Telegram Facebook Slack