Utilisation des filtres Twig (slice et truncate) avec Symfony

image


Bonjour à toutes et à tous, le moteur de templates Twig nous permet d'utiliser de nombreux filtres ce qui rend le développement beaucoup plus pratique. Il existe 2 filtres (slice et truncate) pour gérer la longueur d'une chaîne (string).


Slice :


Description : Le filtre slice permet d'extraire la tranche d'une séquence, une cartographie ou la longueur d'une chaîne sans décoder les entités HTML.

Documentation officielle : https://twig.symfony.com/doc/2.x/filters/slice.html

Utilisationvariable|slice([int][,int])

  • int (facultatif) = Point de départ.
  • int (facultatif) = Longueur de la chaine.

 

Voici un exemple d'utilisation :

{% set string = 'Bonjour chers ami(e)s MSI ! Plus précisément ceux possédant le MSI-GT783.' %}

{{ string|striptags|slice(0, 55)|raw }}
{# outputs 'Bonjour chers ami(e)s MSI ! Plus précis&eac' #}

 

Truncate :


Description : Le filtre truncate permet de limiter la longueur d'une chaîne (Disponible avec l'extension Text).

Documentation officielle : https://twig-extensions.readthedocs.io/en/latest/text.html

Utilisationvariable|truncate(int[,bool][,string])

  • int = Longueur de la chaine.
  • bool (facultatif) = Condition booléenne qui encodera ou non la valeur de la chaîne de caractère.
    Default : false
  • string (facultatif) = Une chaîne de caractère qui se placera à la fin de votre découpage.
    Default : '…'

 

Pour utiliser le filtre truncate il faut l'installer et l'activer :

composer require twig/extensions
//app/config/config.yml

services:
    twig.extension.text:
        class: Twig_Extensions_Extension_Text
        tags:
            - { name: twig.extension }

 

Voici un exemple d'utilisation :

{% set string = 'Bonjour chers ami(e)s MSI ! Plus précisément ceux possédant le MSI-GT783.' %}

{{ string|striptags|truncate(55)|raw }}
{# outputs 'Bonjour chers ami(e)s MSI ! Plus précis&eac...' #}

{{ string|striptags|truncate(55, true)|raw }}
{# outputs 'Bonjour chers ami(e)s MSI ! Plus précisément...' #}

{{ string|striptags|truncate(55, true, ' !!!')|raw }}
{# outputs 'Bonjour chers ami(e)s MSI ! Plus précisément !!!' #}

 

 

En résumé :

  • Le filtre slice sert à extraire une chaîne de caractère d'un point A vers un point B sans décoder les entités HTML
  • Le filtre truncate va couper un texte du début jusqu'à une valeur donnée et peut également faire plus avec ses options facultatives.