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 class 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 chaine 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 constantes ARGS doit obligatoirement être un tableau pour spécifier des arguments à destination de Twig.
Tel que : ['is_safe' => ['html']] par exemple, servant à interprété l'HTML retourner 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 interfaces 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 chaine de caractères.
L'interface oblige que la méthode call prennent uniquement des arguments facultatif. C'est pourquoi, dans l'exemple, la méthode call prend un argument $name facultatif car elle possède une valeur par défaut.