8 votes

Nette Framework - macros d'attributs personnalisés

Quelle est la meilleure façon de définir de nouvelles macros d'attribut dans le fichier Cadre de Nette ?

De plus, serait-il possible de le faire dans le fichier de configuration ?

16voto

pilec Points 318

Définir votre propre macro est vraiment simple dans Nette Framework, d'abord vous devez créer MacroSet :

$latte = new Nette\Latte\Engine;
$set = new Nette\Latte\Macros\MacroSet($latte->compiler);

puis créer une nouvelle Macro avec des args :

$set->addMacro('if', 'if (%node.args):', 'endif');

Et la solution pour votre deuxième question :

Class MyMacroSet extends Nette\Latte\Macros\MacroSet
{
    public static function install(Nette\Latte\Compiler $compiler)
    {
        $compiler->addMacro('if', 'if (%node.args):', 'endif');
    }
}

et dans config.neon vous pouvez enregistrer votre macroSet :

nette.latte:
                setup:
                        - MyMacroSet::install($service->compiler)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X