Créer une fonction
Pour la création d'une nouvelle fonction, tapez la commande php dobby make:twig:function <FunctionName>.
Cette commande va générer la classe suivante :
<?php namespace Elementum\Theme\Twig\Functions; use Elementum\Services\Twig\Interface\TwigFunction; class HelloWorld implements TwigFunction { const NAME = "my_function"; const ARGS = []; public static function call(string $name = 'World') { return 'Hello ' . $name; } }
La fonction doit retourner une chaîne de caractères.
Utilisation
Une fois la fonction créée, elle peut être utilisée dans un template Twig de la manière suivante :
{{ my_function("John") }}
Arguments
La constante ARGS doit obligatoirement être un tableau pour spécifier des arguments à destination de Twig.
Tel que : ['is_safe' => ['html']] par exemple, servant à interpréter l'HTML retourné par la fonction.
Interface TwigFunction
Afin de garantir que les fonctions Twig soient correctement intégrées dans le système, il est nécessaire d'implémenter l'interface TwigFunction.
Cette interface oblige à avoir les constantes suivantes :
NAME: Le nom de la fonctionARGS: Les arguments de la fonction
La méthode call est obligatoire et doit retourner une chaîne de caractères.
L'interface oblige à ce que la méthode call prenne uniquement des arguments facultatifs. C'est pourquoi, dans l'exemple, la méthode call prend un argument $name facultatif car elle possède une valeur par défaut.