wearequantico / stash
存储缓存的地方。
Requires
- php: ^7.0
- psr/cache: ~1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.8
- phpunit/phpunit: ^6
- satooshi/php-coveralls: 1.0.*
Provides
- psr/cache-implementation: 1.0.0
This package is auto-updated.
Last update: 2024-09-13 00:12:12 UTC
README
Stash通过缓存昂贵函数或代码的结果来简化加速代码的方法。某些操作,如数据库查询或调用外部API,运行时间较长,但往往在短时间内结果相同。这使得存储结果并在稍后调用它们变得更加高效。
安装
虽然推荐使用Composer,但Stash可以通过多种方法进行安装。
Composer
在Stash达到1.0版本的稳定API之前,建议在小的更新之前审查更改,尽管错误修复始终与向后兼容。
"require": { "tedivm/stash": "0.14.*" }
或者使用composer require
命令
composer require tedivm/stash
Github
Stash的版本发布可在Github上找到。
文档
尽管这个README包含一些有用的数据,但主要网站上还有更多的信息,请访问stashphp.com。
核心概念
主要类
Stash有三个主要组件:一个表示特定缓存对象分组的Pool
类,一个提供对单个对象访问的Item
类,以及一系列允许Stash与缓存系统交互的Driver
类。
每个Driver
被初始化后传递给一个Pool
,此时开发者可以简单地忽略它。开发者还可以通过组合驱动程序将多个驱动程序一起使用。
Pool
类允许开发者执行多项任务。有一些维护相关的任务,例如运行“清除”以允许后端系统执行维护任务或设置新的日志或驱动程序类。Pool
还可以用于创建Item
对象,单个或成组。
每个Item
代表缓存中的单个对象。它有一个唯一的键,这意味着从同一个Pool
创建的两个Item
将包含相同的值。一个Item
可以从缓存系统中设置、获取和删除一个值。
键
键是一个表示缓存系统中项目的字符串。在最简单的情况下,键是一个字母数字字符串,它与缓存中的值有一个一对一的关系。
Stash提供了一个名为“堆栈”的功能,允许开发者将相关项目分组在一起,以便可以作为一个组删除。这是通过给项目一个嵌套结构来完成的,类似于计算机上的文件夹。就像文件夹一样,这通过在名称中添加斜杠来表示文件或缓存对象。
例如,像"/models/users/34/profile"这样的键可以允许开发者使用特定用户的id清除该用户的数据,或者清除所有用户的数据,甚至所有模型的数据。它还可以允许该开发者将数据分解成特定的部分,只加载所需的。
会话存储
提供的Session类在其构造函数中接受一个Pool,然后可以使用内置的PHP方法、Session::registerHandler静态函数或使用任何使用SessionHandlerInterface接口的框架将其注册为会话处理程序。
驱动程序
Stash目前支持以下后端
- FileSystem
- Sqlite
- APC
- Memcached
- Redis
- 临时(仅限运行时)
Stash 还支持一个专门的 "组合" 驱动程序,可以包含上述任何数量的驱动程序。这允许开发者创建多层驱动程序,这些驱动程序使用各种后端。
Symfony 集成
Stash 扩展包使在 Symfony 项目中使用 Stash 变得更加容易。该扩展包将 Stash 作为服务暴露给开发者使用,并允许 Symfony 使用 Stash 作为会话处理器。
许可证
Stash 在 BSD 许可证下授权。有关详细信息,请参阅 LICENSE 文件。