02 Avr Comment crée une Extension Twig
On va crée un filtre son rôle est d’ajouté 10% à tous les prix qu’on a dans notre site e-commerce.
La liste complète des filtres en Twig
Etape 1 :
La création d’un dossier dans notre Bundle on le nomme par exemple Twig dedans on va créer un dossier Extension.
Ensuite on crée un fichier php on le nomme plusdixExtension.php ( C’est juste une simple class )
<?php
/* Votre NAMESPACE */
namespace Ecommerce\Twig\Extension;
class PlusdixExtension extends \Twig_Extension
{
/* Fonction obligatoire */
public function getFilters()
{
return array(new \Twig_SimpleFilter('dixPourcent', array($this,'calculDix')));
}
/*
dixPourcent : Nom du notre filtre
calculDix : La fonction qu'on va mettre dedans notre code php
*/
function calculDix($prixHT)
{
return round($prixHT + ($prixHT*0.1) );
}
/* Fonction obligatoire */
public function getName()
{
return 'plusdix_extension';
}
}
Etape 2 :
Pour que Symfony prend on considération Notre extension , il faut le mettre dans notre services
Chemin : VotreBundle\Resources\config\services.yml
parameters:
services:
...
dixPourcent.twig_extension:
class: Ecommerce\Twig\Extension\PlusdixExtension
tags:
- { name: twig.extension }
...
Description :
- La première chose est de nommer notre service
- Dans la partie class : on met le chemin de notre class qu’on a crée en haut.
- La partie tags : c’est obligatoire à mettre.
Etape 3 :
Maintenant on peut ajouter notre filtre dans notre fichier Twig
...
<p>{{ produit.prix|dixPourcent(produit.prix) }} TND</p>
...