// $twig is a Twig_Environment instance.
$twig->registerUndefinedFunctionCallback(function($name) {
if (function_exists($name)) {
return new Twig_SimpleFunction($name, function() use($name) {
return call_user_func_array($name, func_get_args());
});
return false;
}
});
In un modello ramoscello:
{{ explode(",", "It's raining, cats and dogs.").0 | raw }}
questa uscita volontà "Piove". Per impostazione predefinita, i valori restituiti sono sfuggiti in Twig.
Twig_SimpleFunction è la classe preferita da utilizzare. Tutte le altre classi relative alla funzione in Twig sono deprecate da 1.12 (da rimuovere in 2.0).
In un controller di Symfony2:
$twig = $this->get('twig');
fonte
2013-11-27 19:20:11
Potrebbe includere alcuni dettagli sull'implementazione? La funzione e l'istanziazione della classe "Twig_Environment" dovrebbero essere incluse nel controller? L'oggetto "$ twig = new Twig_Environment ($ loader)" deve essere passato come variabile (ad esempio "twig" => $ twig) al modello renderizzato? Cosa dovrebbe essere incluso in "/ percorso/per/modelli" nella definizione "$ loader = new Twig_Loader_Filesystem ('/ percorso/a/modelli');". È questo il percorso per i modelli nel mio pacchetto? ha bisogno di essere assoluto? Per me non funziona. Un esempio sarebbe più apprezzato ... – RayOnAir
Per chi arriva qui e vuole un esempio, c'è un esempio molto buono e semplice nella documentazione di Twig su sensiolabs: http://twig.sensiolabs.org/doc/advanced.html# funzioni – h00ligan