ProxyResolver
ProxyResolver
自身不能直接使用。相反,它是另一个解析器的“装饰器”。它为你的资源添加了使用“代理主机”的能力。如果未设置“代理域名”,它的行为将类似于底层的缓存解析器。
准备工作
创建服务
要使用此缓存解析器,你必须首先定义它将装饰的缓存解析器。在本示例中,我们将使用 AWS 缓存解析器。
接下来,我们需要为此缓存解析器定义一个服务,并注入域名数组和要装饰的缓存解析器服务。
1 2 3 4 5 6 7 8 9 10
# app/config/services.yml
services:
acme.imagine.cache.resolver.proxy:
class: Liip\ImagineBundle\Imagine\Cache\Resolver\ProxyResolver
arguments:
- "@acme.imagine.cache.resolver.amazon_s3"
- [ "https://images0.domain.com", "https://images1.domain.com", "https://images2.domain.com" ]
tags:
- { name: "liip_imagine.cache.resolver", resolver: "proxy" }
使用此配置,缓存解析器将生成诸如 //images0.domain.com/.../image.jpg
、//images1.domain.com/.../image.jpg
和 //images2.domain.com/.../image.jpg
之类的路径(而不是来自装饰的缓存解析器的原始路径,在本例中使用 AWS,//bucket.s3.awsamazoncloud.com/.../image.jpg
)。
用法
配置 ProxyResolver
后,你可以使用以下配置将其设置为 LiipImagineBundle
的默认缓存解析器。
1 2 3 4
# app/config/config.yml
liip_imagine:
cache: proxy
在特定过滤器上的用法
或者,你可以使用以下配置将 ProxyResolver
设置为特定过滤器集的缓存解析器。
1 2 3 4 5 6 7 8 9
# app/config/config.yml
liip_imagine:
filter_sets:
cache: ~
my_thumb:
cache: proxy
filters:
# the filter list
本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可协议获得许可。