Creer des directives personnalisees Blade dans Laravel : guide pratique avec exemples

Apprenez a creer des directives Blade personnalisees dans Laravel. Utilisez Blade::directive() et Blade::if() pour simplifier vos templates.

Mahmoud DEVO
Mahmoud DEVO
December 28, 2025 2 min read
Creer des directives personnalisees Blade dans Laravel : guide pratique avec exemples

Introduction

Les directives personnalisées dans Blade sont un outil puissant pour simplifier votre code de templatisation. Elles vous permettent de cacher la logique complexe derrière une syntaxe claire et expressive. Dans cet article, nous allons explorer comment créer et utiliser des directives personnalisées pour améliorer l’efficacité et la lisibilité de vos vues.

Les besoins

Avant d’aborder les détails de la création de directives personnalisées, comprenons pourquoi cela est nécessaire. Imaginez que vous vous retrouvez à écrire des conditions répétitives dans vos vues, telles que la vérification si l’utilisateur est connecté ou non. C’est là qu’interviennent les directives personnalisées pour simplifier votre code.

Création d’une directive personnalisée

Pour créer une directive personnalisée, vous devez utiliser la méthode Blade::directive() dans le service provider App\Providers\AppServiceProvider. Voici un exemple de création d’une directive @ifGuest qui vérifie si l’utilisateur est connecté ou non :

public function boot()
{
    Blade::directive('ifGuest', function () {
        return "<?php if (auth()->guest()): ?>";
    });
}

Cette directive sera remplacée par le code PHP suivant lors de la compilation des vues : <?php if (auth()->guest()): ?>.

Les pièges à éviter

Il est important de ne pas essayer d’optimiser les directives personnalisées en effectuant des opérations complexes dans la méthode de binding. Cela peut entraîner des problèmes de performance et de mise à jour des vues.

Par exemple, ne pas faire cela :

Blade::directive('ifGuest', function () {
    $ifGuest = auth()->guest();
    return "<?php if ({$ifGuest}): ?>";
});

Cela pourrait sembler évident, mais les tentations sont fortes !

Les paramètres dans les directives personnalisées

Si vous souhaitez accepter des paramètres dans vos directives personnalisées, utilisez la méthode Blade::directive() avec un argument supplémentaire. Voici un exemple de création d’une directive @newlinesToBr qui convertit les nouvelles lignes en balises <br> :

public function boot()
{
    Blade::directive('newlinesToBr', function ($expression) {
        return "<?php echo nl2br({$expression}); ?>";
    });
}

Les directives personnalisées pour les “if” statements

Les directives personnalisées sont souvent utilisées pour simplifier les conditions “if”. Heureusement, il existe une méthode plus simple pour créer des directives de cette sorte : Blade::if(). Voici un exemple de création d’une directive @ifPublic qui vérifie si l’utilisateur est sur la page publique ou non :

public function boot()
{
    Blade::if('ifPublic', function () {
        return (app('context'))->isPublic();
    });
}

Conclusion

Les directives personnalisées sont un outil puissant pour simplifier votre code de templatisation. En les utilisant correctement, vous pouvez cacher la logique complexe derrière une syntaxe claire et expressive.

Pour conclure, voici quelques conseils supplémentaires :

  • Utilisez les directives personnalisées pour simplifier vos conditions répétitives.
  • Évitez d’optimiser les directives personnalisées en effectuant des opérations complexes dans la méthode de binding.
  • Utilisez la méthode Blade::if() pour créer des directives de “if” statements.

J’espère que cet article vous a aidé à comprendre et à utiliser correctement les directives personnalisées dans Blade. N’hésitez pas à me poser vos questions ou commentaires en bas de page !

Advertisement

In-Article Ad

Dev Mode

Share this article

Mahmoud DEVO

Mahmoud DEVO

Senior Full-Stack Developer

I'm a passionate full-stack developer with 10+ years of experience building scalable web applications. I write about Vue.js, Node.js, PostgreSQL, and modern DevOps practices.

Enjoyed this article?

Subscribe to get more tech content delivered to your inbox.

Related Articles