Créer une extension Twig pour FuelPHP
Parser
, qui lui permet d'utiliser un moteur de templates externe. Compatible avec un certain nombre d'entre eux, il l'est notamment avec celui qui nous intéresse aujourd'hui : Twig, le moteur de templates de Symfony2.Si l'installation de ce dernier au sein du framework est plutôt évidente, même sans passer par Composer (télécharger Twig, extraire le sous-répertoire
lib/Twig
de l'archive obtenue, le placer tel quel dans fuel/app/vendor
, ajouter si nécessaire Parser
à l'autoload, sabrer le champagne), le moyen d'utiliser des extensions de Twig peut le paraître nettement moins, alors qu'il n'en est rien ! Voyez plutôt :Commençons par écrire notre extension ; voici l'exemple (bidon) que j'ai utilisé pour mes tests :
<?php
class MyExtension extends \Twig_Extension
{
public function getName()
{
return 'my_extension';
}
public function getFilters()
{
return array(
'my_filter' => new \Twig_Filter_Function('my_function')
);
}
}
function my_function($s)
{
$salt = 'FuelPHP rules';
return md5($salt.$s);
}
Par souci de simplicité, j'ai placé ce fichier directement dans
fuel/app/classes/myextension.php
. Copions ensuite le fichier de configuration fuel/packages/parser/config/parser.php
dans fuel/app/config/parser.php
, et éditons ce dernier pour y déclarer notre extension :'View_Twig' => array(
// ...
'extensions' => array(
'Twig_Fuel_Extension',
'MyExtension'
),
),
Et c'est tout ! Vous pouvez désormais utiliser le filtre
my_filter
directement dans vos templates Twig sous FuelPHP.