自定义数据加载器
你可以编写自定义数据加载器,从任何可想象的后端检索图像数据。数据加载器需要实现 LoaderInterface
接口。
1 2 3 4 5 6
namespace Liip\ImagineBundle\Binary\Loader;
interface LoaderInterface
{
public function find($path);
}
LoaderInterface
接口定义了 find
方法,该方法使用图像路径调用,并且需要返回 BinaryInterface
的实例。
警告
请注意,$path
可能来自图像控制器。你需要在你的加载器中清理此参数,以避免暴露图像集合之外的文件。
手动注册
如果你想给它一个不同的名称,你需要配置一个服务,使用你的自定义加载器并用 liip_imagine.binary.loader
标签标记它。
要使用名称 my_custom_data_loader
注册 App\Service\MyCustomDataLoader
,你将使用以下配置
1 2 3 4 5 6 7 8 9 10
# app/config/services.yml
services:
imagine.data.loader.my_custom:
class: App\Service\MyCustomDataLoader
arguments:
- "@liip_imagine"
- "%liip_imagine.formats%"
tags:
- { name: "liip_imagine.binary.loader", loader: my_custom_data_loader }
你可以通过将其添加到配置中作为新的默认加载器来设置你的自定义数据加载器。
1 2 3 4
# app/config/config.yml
liip_imagine:
data_loader: my_custom_data_loader
或者,你可以为特定的过滤器集设置自定义数据加载器。
1 2 3 4 5 6 7 8
# app/config/config.yml
liip_imagine:
filter_sets:
my_special_style:
data_loader: my_custom_data_loader
filters:
# your filters
这项工作,包括代码示例,根据 Creative Commons BY-SA 3.0 许可协议获得许可。