跳到内容

自定义缓存解析器

编辑此页

你可以定义自己的自定义缓存解析器,以使用你的存储后端处理缓存解析。创建自定义缓存解析器始于创建一个实现 ResolverInterface 接口的类

1
2
3
4
5
6
7
interface ResolverInterface
{
    public function isStored($path, $filter);
    public function resolve($path, $filter);
    public function store(BinaryInterface $binary, $path, $filter);
    public function remove(array $paths, array $filters);
}

一旦你定义了你的自定义缓存解析器,你需要将其定义为一个服务并使用 liip_imagine.cache.resolver 标签标记它

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

services:
    imagine.cache.resolver.my_custom:
        class: App\Service\MyCustomResolver
        arguments:
            - "@filesystem"
            - "@router"
        tags:
            - { name: "liip_imagine.cache.resolver", resolver: my_custom_cache }

注意

有关服务容器的更多信息,请参考官方 Symfony 服务容器文档

现在,你的自定义缓存解析器可以设置为全局默认值,使用在 tags 键的 resolver 属性中定义的名称。

1
2
liip_imagine:
    cache: my_custom_cache

或者,你也可以仅为特定的过滤器集设置自定义缓存解析器

1
2
3
4
liip_imagine:
    filter_sets:
        my_special_style:
            cache: my_custom_cache
本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可协议获得许可。
目录
    版本