genesis/method-persister

允许缓存代码中的任何方法。

1.0.3 2020-05-15 14:25 UTC

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