Using Twig

Twig is a template language and engine provided as a standalone component by SensioLabs. It provides:

  • Layout facilities.
  • Template inheritance.
  • Helpers for escaping, and the ability to provide custom helper extensions.

We provide a TemplateInterface wrapper for Twig via Zend\Expressive\Template\Twig.

Installing Twig

To use the Twig wrapper, you must first install Twig

$ composer require twig/twig

Using the wrapper

If instantiated without arguments, Zend\Expressive\Template\Twig will create an instance of the Twig engine, which it will then proxy to.

use Zend\Expressive\Template\Twig;

$templates = new Twig();

Alternately, you can instantiate and configure the engine yourself, and pass it to the Zend\Expressive\Template\Twig constructor:

use Twig_Environment;
use Twig_Loader_Array;
use Zend\Expressive\Template\Twig;

// Create the engine instance:
$loader = new Twig_Loader_Array(include 'config/templates.php');
$twig = new Twig_Environment($loader);

// Configure it:
$twig->addExtension(new CustomExtension());
$twig->loadExtension(new CustomExtension();

// Inject:
$templates = new Twig($twig);