文件系统加载器
The FileSystem
data loader allows for loading images from local file system paths.
提示
如果您不进行任何配置,则默认使用此加载器。
配置
要为名为 profile_photos
的特定上下文设置此加载器,请使用
1 2 3 4 5 6
# app/config/config.yml
liip_imagine:
loaders:
profile_photos:
filesystem: ~
默认情况下,Symfony 的 web/
目录被注册为数据根目录,用于从中加载资源。对于许多安装来说,这已经足够了,但有时您可能需要从其他位置加载图像。为此,您必须设置 data_root
参数。
1 2 3 4 5 6 7
# app/config/config.yml
liip_imagine:
loaders:
default:
filesystem:
data_root: /path/to/source/images/dir
从 1.7.2 版本开始,您可以注册多个数据根目录,文件定位器将搜索每个根目录以查找请求的文件。
1 2 3 4 5 6 7 8 9
# app/config/config.yml
liip_imagine:
loaders:
default:
filesystem:
data_root:
- /path/foo
- /path/bar
从 2.1.0
版本开始,您可以在配置中允许无效的数据根目录(这些根目录在运行时会被删除)(通常无效的数据根目录会导致抛出异常)。这允许您为生产和开发环境配置数据根目录,而无需依赖多个配置。
1 2 3 4 5 6 7 8 9 10 11
# app/config/config.yml
liip_imagine:
loaders:
default:
filesystem:
data_root:
- /path/foo
- /path/bar
- /invalid/path/will/be/removed/at/runtime
allow_unresolvable_data_roots: true
从 1.7.3
版本开始,您可以请求从所有已注册的扩展包中自动注册公共资源路径作为数据根目录。这允许您从位于已加载扩展包内的 Resources/public
文件夹加载资源。要启用此功能,请将 bundle_resources.enabled
配置选项设置为 true
。
1 2 3 4 5 6 7 8
# app/config/config.yml
liip_imagine:
loaders:
default:
filesystem:
bundle_resources:
enabled: true
如果您只想注册部分 Resource/public
文件夹,而不是全部,您可以通过黑名单列出您不想注册的扩展包,或白名单列出您想要注册的扩展包来完成。例如,要将扩展包 “FooBundle” 和 “BarBundle” 列入黑名单(不注册),您将使用以下配置。
1 2 3 4 5 6 7 8 9 10 11 12
# app/config/config.yml
liip_imagine:
loaders:
default:
filesystem:
bundle_resources:
enabled: true
access_control_type: blacklist
access_control_list:
- FooBundle
- BarBundle
或者,如果您想白名单列出(仅注册)扩展包 “FooBundle” 和 “BarBundle”,您将使用以下配置。
1 2 3 4 5 6 7 8 9 10 11 12
# app/config/config.yml
liip_imagine:
loaders:
default:
filesystem:
bundle_resources:
enabled: true
access_control_type: whitelist
access_control_list:
- FooBundle
- BarBundle
最后,从 `1.7.3` 版本开始,您可以命名您的数据根目录,并在调用资源时引用它们。这在很多情况下都很有用,例如想要明确指定,但当您有多个数据根目录路径都包含同名文件时,它尤其有用。在这种情况下,您可以通过在 `data_root
配置数组中提供索引来命名您的数据根目录路径(请注意,自动注册的扩展包资源路径具有扩展包短类名称定义的索引)。
1 2 3 4 5 6 7 8 9
# app/config/config.yml
liip_imagine:
loaders:
default:
filesystem:
data_root:
foo: /a/foo/path
bar: /a/bar/path
鉴于上述配置,您可以使用 @index:path/to/file.ext
格式显式请求根路径。例如,要请求文件 /a/foo/path/with/file.ext
,您可以传递 @foo:with/file.ext
作为文件名。