2017 © Pedro PelĂĄez
 

symfony-bundle twig-utils-bundle

A Symfony bundle with some twig utilities

image

rrb/twig-utils-bundle

A Symfony bundle with some twig utilities

  • Sunday, June 26, 2016
  • by rubenrubiob
  • Repository
  • 1 Watchers
  • 0 Stars
  • 8 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

TwigUtils Bundle

This is a Symfony bundle that provides some useful Twig functions ready to use in your projects., (*1)

HTML and CSS thanks to Gemma Casals., (*2)

Installation

Step 1: Download the Bundle

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:, (*3)

$ composer require rrb/twig-utils-bundle "*"

This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation., (*4)

Step 2: Enable the Bundle

Then, enable the bundle by adding it to the list of registered bundles in the app/AppKernel.php file of your project:, (*5)

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...

            new Rrb\TwigUtilsBundle\RrbTwigUtilsBundle(),
        );

        // ...
    }

    // ...
}

Usage

Lazy loading images

The bundles provides a custom implementation for lazy loading images based on the explanation showed in this video of the Polymer Project., (*6)

The idea is to render a low-resolution image of the image whilst it is loading, so the user may start reading the content without having to wait for all images to load., (*7)

The strategy is to show the low-resolution image as a base64 encoded image, so the browser can immediately render it, avoiding a new request. Thus, the low-resolution image should be at most 10px width by 10px height., (*8)

The low-resolution image is rendered as a background of a <div> that wraps the <img> tag., (*9)

You can see a demo here ., (*10)

lazy_image_render

{{ lazy_image_render(imageUrl, imageBase46, title='', alt='') }}

imageUrl: the url of the image to load., (*11)

    type: string, (*12)

imageBase64, (*13)

    type: string, (*14)

title (optional), (*15)

    type: string default: '', (*16)

alt (optional), (*17)

    type: string default: '', (*18)

Renders the <img> tag wrapped in a <div> whose background is the base64 encoded image. It optionally accepts the title and alt of the image., (*19)

The HTML rendered is as follows:, (*20)

<div class="lazy-image-wrapper" style="background-image: url('data:image/jpeg;base64,/9j/4AAQSkZJRg...');">
    <img class="lazy-image"
         title="title of the image"
         alt="alt of the image"
         src="http://www.example.com/image1.png"
         onload="this.style.opacity = '1'"
    />
</div>

lazy_image_css

{{ lazy_image_css() }}

Renders a stylesheet for the lazy images to work. You have to call this function just once in your <head> tag. Of course, you may also add the styles on your own stylesheet if you want to tweak them., (*21)

The CSS content included in the stylesheet is:, (*22)

.lazy-image{
    opacity:0;
    -webkit-transition: all 0.5s ease-in-out;
    transition: all 0.5s ease-in-out;
    max-width: 100%
}
.lazy-image-wrapper{
    background-size: cover;
    background-repeat: no-repeat;
}

The Versions

26/06 2016

dev-master

9999999-dev

A Symfony bundle with some twig utilities

  Sources   Download

MIT

The Requires

 

by Rubén Rubio Barrera

twig utils images pictures lazy-loading

26/06 2016

0.0.2

0.0.2.0

A Symfony bundle with some twig utilities

  Sources   Download

MIT

The Requires

 

by Rubén Rubio Barrera

twig utils images pictures lazy-loading

22/06 2016

0.0.1

0.0.1.0

A Symfony bundle with some twig utilities

  Sources   Download

MIT

The Requires

 

by Rubén Rubio Barrera

twig utils images pictures lazy-loading