erichard/glide-bundle

将league/glide集成到您的Symfony应用中

2.1.2 2023-01-10 10:13 UTC

This package is auto-updated.

Last update: 2024-09-10 13:49:07 UTC


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服务。

服务器

您可以配置任意数量的服务器。每个服务器都必须有其适当的sourcecache 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');