跳到内容

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 许可协议获得许可。
目录
    版本