跳到内容

PSR 缓存解析器

编辑此页

一个基于 PSR-6 缓存标准的缓存解析器。

PsrCacheResolver 无法单独使用。相反,它是另一个解析器的“包装器”。

依赖

此缓存解析器需要 PSR-6 的实现,例如 symfony/cache,可以通过在项目目录中执行以下命令来安装

1
$ composer require symfony/cache

配置

首先,您需要设置所需的服务。在此示例中,我们将 AmazonS3Resolver 的实例包装在此解析器中。

请参阅 Symfony 关于配置缓存的文档,了解如何配置 PSR-6 缓存实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# app/config/services.yml

services:
    acme.amazon_s3:
        class: AmazonS3
        arguments:
            -
                key:    "%amazon_s3.key%"
                secret: "%amazon_s3.secret%"

    acme.imagine.cache.resolver.amazon_s3:
        class: Liip\ImagineBundle\Imagine\Cache\Resolver\AmazonS3Resolver
        arguments:
            - "@acme.amazon_s3"
            - "%amazon_s3.bucket%"

    acme.imagine.psr_cache.resolver.amazon_s3.cache:
        class: Liip\ImagineBundle\Imagine\Cache\Resolver\PsrCacheResolver
        arguments:
            - "@cache.adapter.memcached"
            - "@acme.imagine.cache.resolver.amazon_s3"
            - { prefix: "amazon_s3" }
        tags:
            - { name: "liip_imagine.cache.resolver", resolver: "cached_amazon_s3" }

有三个选项可用

  • global_prefix: 缓存中所有键的前缀。当为不同系统使用相同缓存时,这对于避免键冲突很有用。
  • prefix: 此包装器的“本地”前缀。当为多个过滤器重用同一解析器时,这很有用。这主要影响 clear 方法。
  • index_key: 用于保存关于一个图像和过滤器配对的已创建缓存键列表的索引键的名称。

用法

配置 PsrCacheResolver 后,您可以将其设置为 LiipImagineBundle 的默认缓存解析器,使用以下配置。

1
2
3
4
# app/config/config.yml

liip_imagine:
    cache: cached_amazon_s3

特定过滤器的用法

或者,您可以将 CacheResolver 设置为特定过滤器集的缓存解析器,使用以下配置。

1
2
3
4
5
6
7
8
9
# app/config/config.yml

liip_imagine:
    filter_sets:
        cache: ~
        my_thumb:
            cache: cached_amazon_s3
            filters:
                # the filter list
本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可协议获得许可。
目录
    版本