PSR 缓存解析器
一个基于 PSR-6 缓存标准的缓存解析器。
PsrCacheResolver
无法单独使用。相反,它是另一个解析器的“包装器”。
配置
首先,您需要设置所需的服务。在此示例中,我们将 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 许可协议获得许可。