Stream Loader

Version: current
  • Maintained versions
  • Unmaintained versions
Edit this page

Stream Loader

The StreamLoader allows you to load images using PHP Streams.

Configuration

1
2
3
4
5
liip_imagine:
    loaders:
        stream.profile_photos:
            stream:
                wrapper: gaufrette://profile_photos

Custom

The Liip\ImagineBundle\Binary\Loader\StreamLoader allows to read images from any stream (http, ftp, and others…) registered thus allowing you to serve your images from literally anywhere.

The example service definition shows how to use a stream wrapped by the Gaufrette filesystem abstraction layer. In order to have this example working, you need to register the stream wrapper first, refer to the Gaufrette Documentation on how to do this.

If you are using the KnpGaufretteBundle you can make use of the StreamWrapper configuration to register the filesystems.

1
2
3
4
5
6
7
8
9
# app/config/services.yml

services:
    acme.liip_imagine.binary.loader.stream.profile_photos:
        class: Liip\ImagineBundle\Binary\Loader\StreamLoader
        arguments:
            - 'gaufrette://profile_photos/'
        tags:
            - { name: 'liip_imagine.binary.loader', loader: 'stream.profile_photos' }

Usage

Now you are ready to use the stream loader. To configure it as the default loader, you can configure the following:

1
2
3
4
# app/config/config.yml

liip_imagine:
    data_loader: stream.profile_photos

Note

The stream should be set up to load images from a specific source and only accept relative paths to that source.

We do not recommend to set this loader up in a way that it accepts an absolute URL. Otherwise an attacker could make your controller load arbitrary image files that are then served over your server, with all the legal implications.

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.