2017 © Pedro Peláez
 

symfony-bundle glide-bundle

Glide image processing in a Symfony2 project

image

ashleydawson/glide-bundle

Glide image processing in a Symfony2 project

  • Wednesday, December 20, 2017
  • by AshleyDawson
  • Repository
  • 1 Watchers
  • 5 Stars
  • 7,682 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 4 Forks
  • 0 Open issues
  • 9 Versions
  • 12 % Grown

The README.md

Glide Bundle

Build Status, (*1)

Add Glide HTTP image processing library to Symfony 2 projects., (*2)

Introduction

Glide is an image processing/manipulation/cache for images. It's particularly handy for modifying and storing images on Flysystem filesystems. It leverages the Intervention image manager to do the heavy lifting. The image API is exposed via an HTTP interface allowing you to embed images within your application. For example:, (*3)

<!-- Embed version of a particular image, truncating the width to 300 pixels -->
<img src="/route/to/image/controller/my-image.jpg?w=300" />

For more information and a better explanation, please read the official Glide docs., (*4)

This bundle incorporates all aspects of the Glide library within the Symfony 2 service container - adding features and helpers relative to working with the Glide library within Symfony 2 projects., (*5)

Installation

You can install the Glide Bundle via Composer. To do that, simply require the package in your composer.json file like so:, (*6)

{
    "require": {
        "ashleydawson/glide-bundle": "~1.0"
    }
}

Run composer update to install the package. Then you'll need to register the bundle in your app/AppKernel.php:, (*7)

$bundles = array(
    // ...
    new AshleyDawson\GlideBundle\AshleyDawsonGlideBundle(),
);

Basic Usage

The most simple example is actually using the glide server to process an image within a controller., (*8)

<?php

namespace Acme\AcmeBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use League\Flysystem\Adapter\Local;
use League\Flysystem\Filesystem;

class MyController extends Controller
{
    /**
     * @Route("/images/{image_name}.jpg")
     */
    public function showImageAction(Request $request)
    {
        // Filesystems for source and cache
        $sourceFilesystem = new Filesystem(new Local('/path/to/source/dir'));
        $cacheFilesystem = new Filesystem(new Local('/path/to/cache/dir'));

        // Create a Glide server
        $glideServer = $this
            ->get('ashleydawson.glide.server_factory')
            ->create($sourceFilesystem, $cacheFilesystem)
        ;

        // Return the processed image response
        return $glideServer->getImageResponse($request->get('image_name'), $request->query->all());
    }
}

The example above will create a glide server using a local filesystem for the source and another for the cache. The action then returns an image response built using the image name (in source filesystem) and request containing the manipulation parameters., (*9)

Note: You may want to point the cache filesystem at the Symfony cache, app/cache., (*10)

Custom Manipulators

Manipulators are services that transform an image in some way. There is a library of manipulators that ships with Glide that provide transformations for size, effects, output, etc., (*11)

If you'd like to register your own custom manipulator, simply create one and tag it into the manipulator collection within the Symfony 2 service container. Like so:, (*12)

<?php

namespace Acme\AcmeBundle\Glide\Manipulator;

use League\Glide\Api\Manipulator\ManipulatorInterface;
use Intervention\Image\Image;
use Symfony\Component\HttpFoundation\Request;

class MyAwesomeManipulator implements ManipulatorInterface
{
    /**
     * {@inheritdoc}
     */
    public function run(Request $request, Image $image)
    {
        if ($request->has('awesome')) {
            // Do something awesome to the image here...    
        }

        return $image;
    }
}

Then, in the service container, simply tag your new manipulator as being a part of the glide manipulators collection., (*13)

In YAML:, (*14)


services: acme.glide.manipulator.my_awesome_manipulator: class: Acme\AcmeBundle\Glide\Manipulator\MyAwesomeManipulator tags: - { name: ashleydawson.glide.manipulators }

Or, in XML:, (*15)

<services>
    <service id="acme.glide.manipulator.my_awesome_manipulator" class="Acme\AcmeBundle\Glide\Manipulator\MyAwesomeManipulator">
        <tag name="ashleydawson.glide.manipulators" />
    </service>
</services>

Ok, now we can use this manipulator on an image:, (*16)

<img src="/route/to/image/controller/my-image.jpg?awesome=foo" />

The Versions

20/12 2017

dev-master

9999999-dev

Glide image processing in a Symfony2 project

  Sources   Download

MIT

The Requires

 

The Development Requires

by Ashley Dawson

http image resize crop processing glide thumbnail picture effects sepia black-and-white

20/12 2017

4.0.0

4.0.0.0

Glide image processing in a Symfony2 project

  Sources   Download

MIT

The Requires

 

The Development Requires

by Ashley Dawson

http image resize crop processing glide thumbnail picture effects sepia black-and-white

31/10 2017

1.1.2

1.1.2.0

Glide image processing in a Symfony2 project

  Sources   Download

MIT

The Requires

 

The Development Requires

by Ashley Dawson

http image resize crop processing glide thumbnail picture effects sepia black-and-white

28/02 2017

1.1.1

1.1.1.0

Glide image processing in a Symfony2 project

  Sources   Download

MIT

The Requires

 

The Development Requires

by Ashley Dawson

http image resize crop processing glide thumbnail picture effects sepia black-and-white

28/02 2017

1.1.0

1.1.0.0

Glide image processing in a Symfony2 project

  Sources   Download

MIT

The Requires

 

The Development Requires

by Ashley Dawson

http image resize crop processing glide thumbnail picture effects sepia black-and-white

22/01 2016

1.0.2

1.0.2.0

Glide image processing in a Symfony2 project

  Sources   Download

MIT

The Requires

 

The Development Requires

by Ashley Dawson

http image resize crop processing glide thumbnail picture effects sepia black-and-white

11/08 2015

1.0.1

1.0.1.0

Glide image processing in a Symfony2 project

  Sources   Download

MIT

The Requires

 

The Development Requires

by Ashley Dawson

http image resize crop processing glide thumbnail picture effects sepia black-and-white

06/05 2015

dev-develop

dev-develop

Glide image processing in a Symfony2 project

  Sources   Download

MIT

The Requires

 

The Development Requires

by Ashley Dawson

http image resize crop processing glide thumbnail picture effects sepia black-and-white

06/05 2015

1.0.0

1.0.0.0

Glide image processing in a Symfony2 project

  Sources   Download

MIT

The Requires

 

The Development Requires

by Ashley Dawson

http image resize crop processing glide thumbnail picture effects sepia black-and-white