hrevert/ht-img-module

Image manipulation module for Zend Framework 2

0.6.0 2018-04-27 19:07 UTC

README

Master Branch Build Status Latest Stable Version Latest Unstable Version Total Downloads Scrutinizer Code Coverage

This module simplifies image manipulation for Zend Framework. This module integrates zf2/zf3 with Imagine, the most amazing Image manipulation library for PHP.

Installation

  • composer require hrevert/ht-img-module
  • Register HtImgModule as module in config/application.config.php
  • Copy the file located in vendor/hrevert/ht-img-module/config/ht-img-module.global.php to config/autoload and change the values as you wish

Basic Usage

First, you need to create a filter service, my_thumbnail in /module/Application/config/module.config.php

return [
    'htimg' => [
        'filters' => [
            'my_thumbnail' => [ // this is  filter service
                'type' => 'thumbnail', // this is a filter loader
                'options' => [  // filter loader passes these options to a Filter which manipulates the image
                    'width' => 100,
                    'height' => 100,
                    'format' => 'jpeg' // format is optional and defaults to the format of given image
                ]
            ]        
        ]
    ]
];

Now, you can get image from view templates like:

<img src="<?php echo $this->htImgUrl('my_image.png', 'my_thumbnail'); ?>" alt="Hello" />

Alternatively, you can:

  <?php echo $this->htDisplayImage('my_image.png', 'my_thumbnail', ['alt' => 'Hello']); ?>

Behind the scenes, the module applies the filter to the image on the first request and then caches the image to the web root. On the next request, the cached image would be served directly from the file system.

Theory of Operation

Whenever, you call a filter service like my_thumbnail from view template, the view helpers(htImgUrl and htDisplayImage) check if the cached image exists. If the cached image exists, it just returns the url to cached image. Else, it return the url where the image is displayed. Also a new cached image is created in the web root!

Documentation

The officially documentation is available in the docs/ directory:

Acknowledgements

HtImgModule is inspired by AvalancheImagineBundle and LiipImagineBundle.