bnomei / kirby3-php-cachedriver
基于PHP的Cache-Driver
Requires
- php: >=8.0
- getkirby/composer-installer: ^1.1
Requires (Dev)
- getkirby/cms: ^3.5
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^9.5
Suggests
- bnomei/kirby3-boost: Boost the speed of Kirby by having content files of pages cached, with automatic unique ID, fast lookup and Tiny-URL.
- bnomei/kirby3-lapse: Cache any data until set expiration time
README
Elephant - 为Kirby 3提供高性能的PHP Cache Driver
商业用途
支持开源!
此插件是免费的,但如果您将其用于商业项目,请考虑赞助我或捐款。
如果我的工作帮助您赚了一些钱,那么我觉得我可能也应该得到一点回报,对吧?
善良。分享一点。谢谢。
—— Bruno
安装
- 解压 master.zip 为文件夹
site/plugins/kirby3-php-cachedriver
或 git submodule add https://github.com/bnomei/kirby3-php-cachedriver.git site/plugins/kirby3-php-cachedriver
或composer require bnomei/kirby3-php-cachedriver
使用
缓存方法
$cache = \Bnomei\PHPCache::singleton(); // or $cache = elephant(); $cache->set('key', 'value', $expireInMinutes); $value = elephant()->get('key', $default); elephant()->remove('key'); elephant()->flush();
缓存文件
所有数据都在PHP脚本生命周期的最后写入。这不会计入您的脚本执行时间,但例如,当您在每次请求中更改缓存中的值时,每次都要写入这个大文件可能会证明效率低下。此外,将根据mono_dump
设置在脚本执行期间写入增量更新。缓存的增加也将写入临时文件,以提高缓存稳定性。
数据序列化
此插件默认使用简单的序列化逻辑,这很快,但只能序列化原始数据类型、闭包、具有toArray()
-方法的对象(如Kirby\Cms\Field
和Kirby\Toolkit\Obj
)。这对于大多数用例应该足够。如果您需要更广泛的支持,请将bnomei.php-cachedriver.serialize
设置为json
,这将编码和解码您的数据为json,然后再将其存储。这会慢一点,但可以确保您的数据只包含原始类型,而无需在缓存之前手动序列化它。
OPCache
确保 OPCache配置 为从缓存中无延迟地加载PHP文件。您很可能会在user.ini
或类似文件中设置这些值!如果您不设置这些值,您可能会从由OPCache缓存的PHP文件加载过时的数据,而不是从磁盘加载您想要的正确数据。
opcache.enable=1 opcache.enable_cli=0 # default is 0, leave it like that opcache.validate_timestamps=1 opcache.revalidate_freq=0 # default is 2, 0 => on every request
感谢Al帮助我获取这些配置值。
基准测试
elephant()->benchmark(1000);
php : 0.03383207321167 file : 2.3811981678009
注意:这将创建和删除大量缓存文件和php-cache文件
调试时无缓存
当Kirby的全局调试配置设置为true
时,完整的插件缓存将被清除,并且不会读取任何缓存。但条目将被创建。这将使您的生活更加轻松——相信我。
如何使用Elephant与Lapse或Boost一起使用
您需要将lapse插件的缓存驱动设置为php
。请注意,mono模式不适合并发写入。
site/config/config.php
<?php return [ 'bnomei.lapse.cache' => ['type' => 'php'], 'bnomei.boost.cache' => ['type' => 'php'], //... other options ];
设置内容文件缓存
使用Kirby 3 Boost来设置内容文件的缓存。
设置
免责声明
本插件提供“原样”使用,不提供任何保证。请在使用前自行承担风险,并在生产环境中使用前进行测试。如果您发现任何问题,请创建新问题。
许可证
不建议在任何推广种族主义、性别歧视、恐同、动物虐待、暴力或其他任何形式仇恨言论的项目中使用此插件。