https://github.com/erichard/glide-bundle
Integrate the Glide library in your Symfony app
https://github.com/erichard/glide-bundle
glide image-manipulation symfony-bundle
Last synced: about 2 months ago
JSON representation
Integrate the Glide library in your Symfony app
- Host: GitHub
- URL: https://github.com/erichard/glide-bundle
- Owner: erichard
- License: mit
- Created: 2018-02-07T18:10:18.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-10T10:14:40.000Z (over 2 years ago)
- Last Synced: 2025-04-16T04:25:18.523Z (2 months ago)
- Topics: glide, image-manipulation, symfony-bundle
- Language: PHP
- Homepage:
- Size: 60.5 KB
- Stars: 13
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Glide Symfony Bundle
====================Integrate the great [Glide](http://glide.thephpleague.com/) library in your Symfony app.
Installation
------------```
$ composer require erichard/glide-bundle
```Then you need to add the bundle to your AppKernel.
```
$bundles = array(
...
new Erichard\GlideBundle\ErichardGlideBundle(),
...
);
```Enable the routing in your `app/config/routing.yml`
```
_erichard_glide:
resource: "@ErichardGlideBundle/Resources/config/routing.yml"
```Configuration
-------------```
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```
I recommend to use the [oneup/flysystem-bundle](https://github.com/1up-lab/OneupFlysystemBundle) package to manage your flysystems services.
Servers
-------You can configure as many servers you want. Each server must have its proper `source` and `cache` flysystem adapter. For example you can have a aws server with both source and cache in Amazon S3 buckets and a local server serving locally stored images.
Presets
-------I prefer to use presets in my projects to avoid having image settings scattered across templates. Check the Glide documentation to [learn more about presets](http://glide.thephpleague.com/1.0/config/defaults-and-presets/).
Security
--------For enhanced security you should sign each HTTP request by setting the `sign_key` option above.
In addition signing URLs, you can also limit how large images can be generated for each server with the `max_image_size` setting.
Take a look at the Glide documentation to [learn more about security](http://glide.thephpleague.com/1.0/config/security/).
Twig Extension
--------------A twig extension is provided to generate images URL in your templates. The extension will handle the request signature if you have enabled the feature.
```
{{ glideUrl('image', image.path, {'p': 'product_showcase'}) }}
```Get glide servers from container
--------------------------------Servers are accessible publicly in the container. You can grab them with their id `erichard_glide._server`.
With the exemple from above you can get the server like this.
```
$server = $this->get('erichard_glide.image_server');
```