类 FileEngine
用于缓存的文件存储引擎。文件存储是读取和写入速度最慢的缓存存储。但是,它适用于没有其他存储引擎可用或内容对性能不敏感的服务器。
您可以使用 Cache::config() 配置 FileEngine 缓存。
属性摘要
-
$_File protected
SplFileObject
SplFileObject 类实例
-
$_config protected
array<string, mixed>
运行时配置
-
$_configInitialized protected
布尔值
配置属性是否已使用默认值配置
-
$_defaultConfig protected
array<string, mixed>
除非被运行时配置覆盖,否则使用的默认配置
-
$_groupPrefix protected
字符串
包含编译后的字符串,其中包含所有组前缀,这些前缀将附加到此缓存引擎中的每个键之前
-
$_init protected
布尔值
除非 FileEngine::__active(); 失败,否则为 True
方法摘要
-
_active() protected
确定缓存目录是否可写
-
_clearDirectory() protected
用于清除匹配文件的目录。
-
_configDelete() protected
删除单个配置键。
-
_configRead() protected
读取配置键。
-
_configWrite() protected
写入配置键。
-
_key() protected
生成用于缓存后端使用的键。
-
_setKey() protected
设置此类管理的当前缓存键,并为该键所指向的缓存文件创建一个可写的 SplFileObject。
-
add() public
如果缓存中不存在,则向缓存添加一个键。
-
clear() public
从缓存中删除所有值
-
clearGroup() public
递归删除任何名为 $group 的目录下的所有文件
-
configShallow() public
将提供的配置与现有配置合并。与
config()
不同,config()
对嵌套键进行递归合并,此方法执行简单的合并。 -
decrement() public
未实现
-
delete() public
从缓存中删除一个键
-
deleteMultiple() public
作为列表删除多个缓存项
-
duration() protected
将 TTL 值的各种表达式转换为以秒为单位的持续时间
-
ensureValidKey() protected
确保给定缓存键的有效性。
-
ensureValidType() protected
确保参数类型和缓存键的有效性。
-
get() public
从缓存中读取一个键
-
getConfig() public
返回配置。
-
getConfigOrFail() public
返回此特定键的配置。
-
getMultiple() public
通过其唯一键获取多个缓存项。
-
groups() public
执行每个组所需的任何初始化,并返回每个组的
group value
,它是缓存键中表示每个组的标记 -
has() public
确定缓存中是否存在一个项目。
-
increment() public
未实现
-
init() public
初始化文件缓存引擎
-
set() public
将键的数据写入缓存
-
setConfig() public
设置配置。
-
setMultiple() public
在缓存中持久化一组键 => 值对,并可选地提供 TTL。
-
warning() protected
如果遇到操作期间的故障,缓存引擎可能会触发警告,如果 option warnOnWriteFailures 设置为 true。
方法详情
_clearDirectory() ¶ protected
_clearDirectory(string $path): void
用于清除匹配文件的目录。
参数
-
字符串
$path 要搜索的路径。
返回
无效
_configDelete() ¶ protected
_configDelete(string $key): void
删除单个配置键。
参数
-
字符串
$key 要删除的键。
返回
无效
抛出
Cake\Core\Exception\CakeException
如果试图覆盖现有的配置
_configWrite() ¶ protected
_configWrite(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void
写入配置键。
参数
-
array<string, mixed>|string
$key 要写入的键。
-
混合
$value 要写入的值。
-
字符串|布尔值
$merge 可选 True 表示递归合并,'shallow' 表示简单合并,false 表示覆盖,默认为 false。
返回
无效
抛出
Cake\Core\Exception\CakeException
如果试图覆盖现有的配置
_key() ¶ protected
_key(string $key): string
生成用于缓存后端使用的键。
如果请求的键有效,则应用组前缀值和引擎前缀。键中的空格将被替换。
参数
-
字符串
$key
返回
字符串
_setKey() ¶ protected
_setKey(string $key, bool $createKey = false): bool
设置此类管理的当前缓存键,并为该键所指向的缓存文件创建一个可写的 SplFileObject。
参数
-
字符串
$key 键
-
布尔值
$createKey 可选 如果键不存在,是否应该创建该键,或者不创建该键
返回
布尔值
add() ¶ public
add(string $key, mixed $value): bool
如果缓存中不存在,则向缓存添加一个键。
默认为非原子实现。子类应优先选择原子实现。
参数
-
字符串
$key 数据的标识符。
-
混合
$value 要缓存的数据。
返回
布尔值
clearGroup() ¶ public
clearGroup(string $group): bool
递归删除任何名为 $group 的目录下的所有文件
每个实现都需要决定是实际删除键还是只是增加组生成值来实现相同的结果。
参数
-
字符串
$group 要清除的组。
返回
布尔值
configShallow() ¶ public
configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this
将提供的配置与现有配置合并。与 config()
不同,config()
对嵌套键进行递归合并,此方法执行简单的合并。
设置特定值
$this->configShallow('key', $value);
设置嵌套值
$this->configShallow('some.nested.key', $value);
同时更新多个配置设置
$this->configShallow(['one' => 'value', 'another' => 'value']);
参数
-
array<string, mixed>|string
$key 要设置的键,或完整的配置数组。
-
混合|空
$value 可选 要设置的值。
返回
$this
decrement() ¶ public
decrement(string $key, int $offset = 1): int|false
未实现
参数
-
字符串
$key 要递减的键
-
整数
$offset 可选 要偏移的数字
返回
整数|假
抛出
LogicException
deleteMultiple() ¶ public
deleteMultiple(iterable<string> $keys): bool
作为列表删除多个缓存项
这是一个尽力而为的尝试。如果删除项目会导致错误,则会忽略该错误,并且会尝试删除所有项目。
参数
-
iterable<string>
$keys 要删除的字符串键列表。
返回
布尔值
抛出
Cake\Cache\Exception\InvalidArgumentException
如果 $keys 不是数组或 Traversable,或者任何 $keys 不是合法值。
duration() ¶ protected
duration(DateInterval|int|null $ttl): int
将 TTL 值的各种表达式转换为以秒为单位的持续时间
参数
-
DateInterval|int|null
$ttl 此项目的 TTL 值。如果发送 null,则将使用驱动程序的默认持续时间。
返回
int
ensureValidKey() ¶ protected
ensureValidKey(mixed $key): void
确保给定缓存键的有效性。
参数
-
mixed
$key 要检查的键。
返回
无效
抛出
Cake\Cache\Exception\InvalidArgumentException
当键无效时。
ensureValidType() ¶ protected
ensureValidType(iterable $iterable, string $check = self::CHECK_VALUE): void
确保参数类型和缓存键的有效性。
参数
-
iterable
$iterable 要检查的可迭代对象。
-
string
$check optional 是否检查键或值。
返回
无效
抛出
Cake\Cache\Exception\InvalidArgumentException
get() ¶ public
get(string $key, mixed $default = null): mixed
从缓存中读取一个键
参数
-
字符串
$key 数据的标识符
-
mixed
$default optional 如果键不存在,则返回的默认值。
返回
混合
getConfig() ¶ public
getConfig(string|null $key = null, mixed $default = null): mixed
返回配置。
用法
读取整个配置
$this->getConfig();
读取特定值
$this->getConfig('key');
读取嵌套值
$this->getConfig('some.nested.key');
使用默认值读取
$this->getConfig('some-key', 'default-value');
参数
-
string|null
$key optional 要获取的键,或整个配置的 null。
-
mixed
$default optional 键不存在时的返回值。
返回
混合
getConfigOrFail() ¶ public
getConfigOrFail(string $key): mixed
返回此特定键的配置。
此键的配置值必须存在,永远不能为 null。
参数
-
字符串
$key 要获取的键。
返回
混合
抛出
InvalidArgumentException
getMultiple() ¶ public
getMultiple(iterable<string> $keys, mixed $default = null): iterable<string, mixed>
通过其唯一键获取多个缓存项。
参数
-
iterable<string>
$keys 可以一次性获取的键列表。
-
mixed
$default optional 对于不存在的键返回的默认值。
返回
iterable<string, mixed>
抛出
Cake\Cache\Exception\InvalidArgumentException
如果 $keys 不是数组或 Traversable,或者任何 $keys 不是合法值。
groups() ¶ public
groups(): list<string>
执行每个组所需的任何初始化,并返回每个组的 group value
,它是缓存键中表示每个组的标记
返回
list<string>
has() ¶ public
has(string $key): bool
确定缓存中是否存在一个项目。
注意:建议将 has() 仅用于缓存预热等目的,而不是在您的实时应用程序操作中用于 get/set,因为此方法容易出现竞争条件,您的 has() 会返回 true,而紧随其后,另一个脚本可能会将其删除,从而使您的应用程序状态过时。
参数
-
字符串
$key 缓存项键。
返回
布尔值
抛出
Cake\Cache\Exception\InvalidArgumentException
如果 $key 字符串不是合法值。
increment() ¶ public
increment(string $key, int $offset = 1): int|false
未实现
参数
-
字符串
$key 要递增的键
-
整数
$offset 可选 要偏移的数字
返回
整数|假
抛出
LogicException
init() ¶ public
init(array<string, mixed> $config = []): bool
初始化文件缓存引擎
由缓存前端自动调用。
参数
-
array<string, mixed>
$config optional 引擎设置的数组
返回
布尔值
set() ¶ public
set(string $key, mixed $value, DateInterval|int|null $ttl = null): bool
将键的数据写入缓存
参数
-
字符串
$key 数据的标识符
-
混合
$value 要缓存的数据
-
DateInterval|int|null
$ttl optional 可选。此项目的 TTL 值。如果未发送任何值,并且驱动程序支持 TTL,则库可能会为其设置默认值,或者让驱动程序负责处理。
返回
布尔值
setConfig() ¶ public
setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this
设置配置。
用法
设置特定值
$this->setConfig('key', $value);
设置嵌套值
$this->setConfig('some.nested.key', $value);
同时更新多个配置设置
$this->setConfig(['one' => 'value', 'another' => 'value']);
参数
-
array<string, mixed>|string
$key 要设置的键,或完整的配置数组。
-
混合|空
$value 可选 要设置的值。
-
bool
$merge optional 是否递归合并或覆盖现有配置,默认为 true。
返回
$this
抛出
Cake\Core\Exception\CakeException
尝试设置无效的键时。
setMultiple() ¶ public
setMultiple(iterable $values, DateInterval|int|null $ttl = null): bool
在缓存中持久化一组键 => 值对,并可选地提供 TTL。
参数
-
iterable
$values 用于多次设置操作的键值对列表。
-
DateInterval|int|null
$ttl optional 可选。此项目的 TTL 值。如果未发送任何值,并且驱动程序支持 TTL,则库可能会为其设置默认值,或者让驱动程序负责处理。
返回
布尔值
抛出
Cake\Cache\Exception\InvalidArgumentException
如果 $values 不是数组或 Traversable,或者任何 $values 不是合法值。
warning() ¶ protected
warning(string $message): void
如果遇到操作期间的故障,缓存引擎可能会触发警告,如果 option warnOnWriteFailures 设置为 true。
参数
-
string
$message 警告消息。
返回
无效
属性详细说明
$_defaultConfig ¶ protected
除非被运行时配置覆盖,否则使用的默认配置
duration
指定此缓存配置中的项目持续多长时间。groups
与此配置中存储的每个键关联的组或“标签”列表。便于从缓存中删除整个组。lock
由 FileCache 使用。写入文件之前是否应锁定文件?mask
用于创建文件的掩码dirMask
用于创建文件夹的掩码path
缓存文件应保存到的路径。默认为系统临时目录。prefix
附加到所有条目。当您需要与另一个缓存配置或另一个应用程序共享键空间时很有用。cache::gc 从不被自动调用。serialize
缓存对象是否应该先序列化。
类型
array<string, mixed>