Comment crée une Extension Twig

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>

...