跳到内容

缓存解析器 (已弃用)

编辑此页

警告

此缓存解析器基于已停止维护的 Doctrine Cache 库。

建议改用 PsrCacheResolver

CacheResolver 不能单独使用。相反,它是另一个解析器的“包装器”。

依赖

此缓存解析器需要 Doctrine Cache 库,可以通过在项目目录中执行以下命令来安装

1
$ composer require doctrine/cache

配置

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 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%"

    memcache:
        class: Memcache
        calls:
            - [ connect, [ "127.0.0.1", 11211 ] ]

    cache.memcache:
        class: Doctrine\Common\Cache\MemcacheCache
        calls:
            - [ setMemcache, [ "@memcache" ] ]

    acme.imagine.cache.resolver.amazon_s3.cache:
        class: Liip\ImagineBundle\Imagine\Cache\Resolver\CacheResolver
        arguments:
            - "@cache.memcache"
            - "@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:用于保存关于一个图像和过滤器配对的已创建缓存键列表的索引键的名称。

用法

配置 CacheResolver 后,您可以将其设置为 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 许可获得许可。
目录
    版本