visol/cacheable

允许通过注解缓存 Flow 框架方法的返回值

安装次数: 1,433

依赖项: 0

建议者: 0

安全性: 0

星标: 5

关注者: 5

分支: 2

开放问题: 0

类型:neos-package

0.3.0 2022-11-02 13:28 UTC

This package is auto-updated.

Last update: 2024-08-30 01:12:00 UTC


README

此 Flow 框架包允许通过注解缓存 Flow 框架方法的返回值。

特性

  • 配置生命周期
  • 配置缓存标签
  • 可选地使用当前认证账户或当前认证账户关联的角色来保护缓存条目
  • 使用持久缓存或临时缓存
  • 此功能基于 Flow 框架构建。缓存配置可以根据项目需求进行调整。

安装

要获取 Cacheable 的最新版本,请使用 Composer 引入项目

composer require visol/cacheable

用法

为了使注解生效,确保在类中导入相应的命名空间

use Visol\Cacheable\Annotations as Cacheable;
use Visol\Cacheable\Annotations\Method;

现在您可以向希望缓存结果的函数添加注解

/**
 * @return array
 * @Cacheable\Method(lifetime=1800, tags={"rest_service"}, security=Method::SECURITY_ROLES, cacheIdentifier=Method::CACHE_PERSISTENT)
 */
public function executeLongRunningTask(string $someArgument): array
{
    // Fetch data from API or perform long running calculations
}

这将把返回值缓存到持久缓存中,时间为 30 分钟,考虑当前认证用户的全部角色,并带有 rest_service 标签。

警告:仅对静态或类似于静态的方法使用此注解。例如,获取外部数据或仅依赖于提供的参数执行计算。

缓存生命周期配置

您可以在秒中配置缓存生命周期

lifetime=1800

这将使您的数据缓存 30 分钟。

缓存标签配置

您可以配置一个缓存标签数组

tags={"tag_1", "tag_2"}

这允许您在代码中按程序清除缓存。

安全方法配置

缓存数据可以绑定到当前认证账户或当前认证账户的角色。

无保护 (默认)

security=Method::SECURITY_NONE

账户

security=Method::SECURITY_ACCOUNT

角色

security=Method::SECURITY_ROLES

缓存类型

默认情况下,配置了两个缓存

持久缓存 (默认)

cacheIdentifier=Method::CACHE_PERSISTENT

将数据作为持久数据存储在 FileBackend 中。

临时缓存

cacheIdentifier=Method::CACHE_TRANSIENT

将数据存储在 TransientMemoryBackend 中。

如果您需要根据需要调整配置,请覆盖应用程序包或发行版的 Caches.yaml 中的缓存。有关默认配置,请参阅 Configuration/Caches.yaml

缓存条目标识符

缓存条目标识符基于命名空间、参数和安全设置自动生成。

默认情况下,命名空间设置为类名和方法名。

所有提供的参数都按原样使用。在使用复杂对象时要小心。

致谢

visol digitale Dienstleistungen GmbH, www.visol.ch

灵感来源于

许可证

Cacheable 根据 MIT 许可证 (MIT) 许可。