2017 © Pedro Peláez
 

library twig-extension

Twig extension for data URI ; Converts data to the data URI Url scheme (RFC 2397)

image

data-uri/twig-extension

Twig extension for data URI ; Converts data to the data URI Url scheme (RFC 2397)

  • Saturday, March 18, 2017
  • by romain
  • Repository
  • 2 Watchers
  • 27 Stars
  • 54,177 Installations
  • PHP
  • 5 Dependents
  • 0 Suggesters
  • 8 Forks
  • 2 Open issues
  • 4 Versions
  • 10 % Grown

The README.md

DataURI Twig Extension

Build Status, (*1)

This is an extension for Twig Templating engine, (*2)

This extension makes easy to use the dataURI scheme as specified in RFC 2397., (*3)

Be carefull, as explained in the RFC, it can not be used as a replacement for traditionnal URI sources all the time. DataURI scheme is length limited and can not handle all files / ressources., (*4)

Install

This extension requires PHP 5.3.2., (*5)

[Download and Install composer][3], then add this to your composer.json:, (*6)

{
    "require": {
        "data-uri/twig-extension": "dev-master"
    }
}

Then, register the extension in your twig environment:, (*7)

$twig->addExtension(new \DataURI\TwigExtension());

Usage

DataURI extension works with stream ressource, scalar value, binary string, or a pathname for a file., (*8)

Pathname

$twig->render('<img title="hello" src="{{ image | dataUri }}" />', array('image' => '/path/to/image.jpg'));

will render something like:, (*9)

<img title="hello" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAB...SUhEU==" />

Ressource

$file = fopen('/path/to/image.jpg', 'r');
$twig->render('<img title="hello" src="{{ image | dataUri }}" />', array('image' => $file));

Binary string

$file = file_get_contents('/path/to/image.jpg');
$twig->render('<img title="hello" src="{{ image | dataUri(true, \'image/jpeg\') }}" />', array('image' => $file));

Options

DataUri can take up to 3 parameters:, (*10)

dataUri(strictMode, mimeType, parameters), (*11)

strictMode default value us true mimeType default value is null (autodetected when passing a pathname) parameters is an array of key/value parameters, (*12)

Unlock data length restriction

As said above, the RFC is quite strict on the output max length. By default, the extension is 100% RFC compliant and the extension will log warnings if you render data too large, but you can unlock the limit with the first option of the filter:, (*13)

$twig->render('<img title="hello" src="{{ image | dataUri(false) }}" />', array('image' => '/path/to/BIGPICTURE.jpg'));

note: If you display errors, warning message will result in Twig throws Twig_Error_Runtime exception., (*14)

Example Mimetype

$file = fopen('bunny.png', 'r');
$twig->render("{{ file | dataUri(false, 'image/png') }}", array('file' => $file));

will render something like:, (*15)

data:image/png;base64,oAYTUKHJKPPZ...F873=/SO

Example Parameters

$json = '{"Hello":"World !"}';
$twig->render( '{{ json | dataUri(false, "application/json", {"charset":"utf-8"}) }}', array('json' => $json));

will render:, (*16)

data:application/json;charset=utf-8,%7B%22Hello%22%3A%22World%20%21%22%7D

License

This extension is released under the MIT License, (*17)

The Versions

18/03 2017

dev-master

9999999-dev

Twig extension for data URI ; Converts data to the data URI Url scheme (RFC 2397)

  Sources   Download

MIT

The Requires

 

The Development Requires

twig extension datauri dataurl

11/05 2016

1.0.1

1.0.1.0

Twig extension for data URI ; Converts data to the data URI Url scheme (RFC 2397)

  Sources   Download

MIT

The Requires

 

twig extension datauri dataurl

05/03 2016

1.0.0

1.0.0.0

Twig extension for data URI ; Converts datas to the data URI Url scheme (RFC 2397)

  Sources   Download

MIT

The Requires

 

twig extension datauri dataurl

25/08 2014

0.1.0

0.1.0.0

Twig extension for data URI ; Converts datas to the data URI Url scheme (RFC 2397)

  Sources   Download

MIT

The Requires

 

twig extension datauri dataurl