Adicionando Twig_SimpleFilter a um aplicativo Silex

Às vezes, os filtros Twig fornecidos são insuficientes. Por exemplo, você pode querer camelize(maiúscula o primeiro caractere de cada palavra em uma string) um valor em vez de apenas capitalize(maiúsculas o primeiro caractere e cada palavra minúscula em uma string). Felizmente, o Pimple permite adicionar filtros simples à Twig_Environmentclasse de uma SilexApplicationfunção anônima.

<?php
// other silex app bootstrapping aspects omitted
$app
->register(new TwigServiceProvider(), array(
'twig.path' => 'assets/views',
));

$app
['twig'] = $app->share($app->extend('twig', function($twig) {
$twig
->addFilter(new Twig_SimpleFilter('camelize', function ($str) {
return ucwords($str);
}));
return $twig;
}));

Dentro de um galho visualizar o filtro é agora aviable através do nome do filtro definida, ou seja camelize.

<span id="used-filter">{{ used_filter|camelize }}</span>