erichard / glide-bundle
将league/glide集成到您的Symfony应用中
2.1.2
2023-01-10 10:13 UTC
Requires
- league/glide: ^2.0
Suggests
- oneup/flysystem-bundle: A Flysystem integration for your Symfony projects
README
将优秀的Glide库集成到您的Symfony应用中。
安装
$ composer require erichard/glide-bundle
然后您需要将此包添加到您的AppKernel。
$bundles = array(
...
new Erichard\GlideBundle\ErichardGlideBundle(),
...
);
在您的app/config/routing.yml
中启用路由
_erichard_glide:
resource: "@ErichardGlideBundle/Resources/config/routing.yml"
配置
erichard_glide:
sign_key: ~
presets:
product_showcase: # glide options
w: 540
h: 540
accept_webp:
enabled: true # Auto convert to WebP if the browser support it (false by default)
servers:
image:
source: oneup_flysystem.image_filesystem # A flystem service
cache: oneup_flysystem.cache_filesystem # A flystem service
max_image_size: 4000000 # OPTIONAL - number of pixels
defaults: # OPTIONAL - glide defaults options
q: 90
fm: jpg
我建议使用oneup/flysystem-bundle包来管理您的flysystems服务。
服务器
您可以配置任意数量的服务器。每个服务器都必须有其适当的source
和cache
flysystem适配器。例如,您可以拥有一个aws服务器,其源和缓存都在Amazon S3桶中,以及一个本地服务器,用于提供本地存储的图片。
预设
我更喜欢在我的项目中使用预设来避免在模板中散布图像设置。请查看Glide文档以了解更多关于预设的信息。
安全
为了提高安全性,您应该通过设置上面的sign_key
选项来对每个HTTP请求进行签名。
除了签名URL之外,您还可以使用max_image_size
设置来限制每个服务器可以生成的图像大小。
请查看Glide文档以了解更多关于安全性的信息。
Twig扩展
提供了一个twig扩展来在模板中生成图像URL。如果您启用了此功能,扩展将处理请求签名。
{{ glideUrl('image', image.path, {'p': 'product_showcase'}) }}
从容器中获取glide服务器
服务器在容器中公开可用。您可以使用它们的id erichard_glide.<name>_server
来获取它们。
使用上面的示例,您可以像这样获取服务器。
$server = $this->get('erichard_glide.image_server');