2013-11-12

Como agrega Funciones existente de PHP o Filtros de manera simple dentro de Twig, en una sola linea de codigo

Como agregar Funciones o Filtros de manera simple a Twig sin tenes que andar creando class que extiende de la interfaz Twig_Extension

class Project_Twig_Extension extends Twig_Extension {...}

Este es un código simple y limpio, se ve como podemos agrega un función de PHP como base64_encode() y base64_decode() que no esta en Twig.

// Datos view Template
$data=array(
//...
);
//Load lib
require_once'libs/Twig/Autoloader.php';
Twig_Autoloader::register();
//config path template
$loader = new Twig_Loader_Filesystem($pathTmp);
// Set path cache
$twig = new Twig_Environment($loader, array(
'cache' => false,
//'cache' => $pathNewsLetters.'tmp',
'debug' => true
));
// Con esto podemos tener la funcion base64_encode y base64_decode dentro del template
$twig->addFilter(new Twig_SimpleFilter('ebase64', 'base64_encode'));
$twig->addFilter(new Twig_SimpleFilter('dbase64', 'base64_decode'));
// Para llamarlo a la funciones desde dentro del templeta de Twig
// TemplateDemo.html.twig
// {{ varX|ebase64}}
// {{ varX|dbase64}}
$twig->render('TemplateDemo.html.twig', $data);