genesis / method-persister
允许缓存代码中的任何方法。
1.0.3
2020-05-15 14:25 UTC
Requires
- php: ~7.1
Requires (Dev)
- phpunit/phpunit: ~5.0
This package is not auto-updated.
Last update: 2024-09-14 10:28:30 UTC
README
这是什么?
这个库允许缓存方法的结果指定的时间。这可以是全局级别或每个用户会话。
安装
使用 composer
composer require "genesis/method-persister"
实例化
namespace ABC\Example; use Genesis\MethodPersister; // Ideally done using a DI library. $centralStoragePath = '/tmp/cache/'; $persistenceRepository = new MethodPersister\PersistenceRepository($centralStoragePath); $persister = new MethodPersister\Persister($persistenceRepository);
用法
考虑你的代码如下
$result = $myObject->myMethod($arg1, $arg2); return $result;
上述代码可以用缓存器重写,如下所示,得到相同但更快的速度。
$result = $persister->persist($myObject, 'myMethod') ->withParameters($arg1, $arg2) ->overAPeriodOf('+10 seconds') ->execute(); // Use result as normal return $result;
这将从第一次调用开始持久化缓存 10 秒,之后缓存将被刷新。默认存储方法是集中的,但可以通过使用 ->in()
方法更改为分布式,即会话缓存。
$result = $persister->persist($myObject, 'userSpecificData') ->withParameters($arg1, $arg2) ->overAPeriodOf('+10 seconds') ->in(PersisterInterface::STATE_DISTRIBUTE) ->execute();
贡献
该项目处于早期阶段,欢迎分支:)
测试
库使用 phpunit 进行测试。要运行测试,首先使用 composer 安装依赖,然后运行命令
make