8 Les Bases de Laravel 11 : Vues

Anis MarrouchiAI Bot
Par Anis Marrouchi & AI Bot ·

Chargement du lecteur de synthèse vocale...

Introduction

Bien sur, il n'est pas pratique de retourner des documents HTML entiers sous forme de chaines directement depuis vos routes et controleurs. Heureusement, les vues fournissent un moyen pratique de placer tout notre HTML dans des fichiers separes. Les vues separent la logique de votre controleur/application de votre logique de presentation et sont stockees dans le repertoire resources/views. Lors de l'utilisation de Laravel, les templates de vue sont generalement ecrits en utilisant le langage de template Blade. Une vue simple pourrait ressembler a ceci :

Bonjour, {{ $name }}

Puisque cette vue est stockee dans resources/views/greeting.blade.php, nous pouvons la retourner en utilisant l'helper global view comme ceci :

Route::get('/', function () {
    return view('greeting', ['name' => 'James']);
});

Vous cherchez plus d'informations sur la facon d'ecrire des templates Blade ? Consultez la documentation Blade complete pour commencer.

Ecrire des Vues en React / Vue

Au lieu d'ecrire leurs templates frontend en PHP via Blade, de nombreux developpeurs ont commence a preferer ecrire leurs templates en utilisant React ou Vue. Laravel rend cela simple grace a Inertia, une bibliotheque qui facilite la liaison de votre frontend React / Vue a votre backend Laravel sans les complexites habituelles de la construction d'une SPA.

Creer et Rendre des Vues

Vous pouvez creer une vue en placant un fichier avec l'extension .blade.php dans le repertoire resources/views de votre application ou en utilisant la commande Artisan make:view :

php artisan make:view greeting

L'extension .blade.php informe le framework que le fichier contient un template Blade. Les templates Blade contiennent du HTML ainsi que des directives Blade qui vous permettent d'afficher facilement des valeurs, de creer des instructions "if", d'iterer sur des donnees, et plus encore. Une fois que vous avez cree une vue, vous pouvez la retourner depuis l'une des routes ou controleurs de votre application en utilisant l'helper global view :

Route::get('/', function () {
    return view('greeting', ['name' => 'James']);
});

Les vues peuvent egalement etre retournees en utilisant la facade View :

use Illuminate\Support\Facades\View;
 
return View::make('greeting', ['name' => 'James']);

Repertoires de Vues Imbriquees

Les vues peuvent egalement etre imbriquees dans des sous-repertoires du repertoire resources/views. La notation "point" peut etre utilisee pour referencer des vues imbriquees. Par exemple, si votre vue est stockee dans resources/views/admin/profile.blade.php, vous pouvez la retourner comme ceci :

return view('admin.profile', $data);

Les noms de repertoires de vues ne doivent pas contenir le caractere ..

Creer la Premiere Vue Disponible

En utilisant la methode first de la facade View, vous pouvez creer la premiere vue qui existe dans un tableau donne de vues. Cela peut etre utile si votre application ou package permet de personnaliser ou d'ecraser les vues :

use Illuminate\Support\Facades\View;
 
return View::first(['custom.admin', 'admin'], $data);

Determiner si une Vue Existe

Si vous devez determiner si une vue existe, vous pouvez utiliser la facade View. La methode exists retournera true si la vue existe :

use Illuminate\Support\Facades\View;
 
if (View::exists('admin.profile')) {
    // ...
}

Passer des Donnees aux Vues

Comme vous l'avez vu dans les exemples precedents, vous pouvez passer un tableau de donnees aux vues pour rendre ces donnees disponibles a la vue :

return view('greetings', ['name' => 'Victoria']);

Lors du passage d'informations de cette maniere, les donnees doivent etre un tableau avec des paires cle/valeur. Vous pouvez ensuite acceder a chaque valeur dans votre vue en utilisant les cles des donnees, comme {{ $name }}.

Comme alternative au passage d'un tableau complet de donnees a la fonction helper view, vous pouvez utiliser la methode with pour ajouter des pieces individuelles de donnees a la vue :

return view('greeting')
            ->with('name', 'Victoria')
            ->with('occupation', 'Astronaute');

Partager des Donnees avec Toutes les Vues

Occasionnellement, vous pouvez avoir besoin de partager des donnees avec toutes les vues rendues par votre application. Vous pouvez le faire en utilisant la methode share de la facade View. Typiquement, vous devriez placer les appels a la methode share dans la methode boot d'un fournisseur de services :

use Illuminate\Support\Facades\View;
 
public function boot()
{
    View::share('key', 'value');
}

Compositeurs de Vues

Les compositeurs de vues sont des callbacks ou des methodes de classe qui sont appelees quand une vue est rendue. Si vous avez des donnees que vous voulez lier a une vue chaque fois que cette vue est rendue, un compositeur de vue peut vous aider a organiser cette logique en un seul endroit.

use Illuminate\Support\Facades\View;
 
public function boot()
{
    View::composer('profile', function ($view) {
        $view->with('count', User::count());
    });
}

Attacher un Compositeur a Plusieurs Vues

Vous pouvez attacher un compositeur de vue a plusieurs vues a la fois en passant un tableau de vues comme premier argument de la methode composer :

use App\Views\Composers\MultiComposer;
use Illuminate\Support\Facades\View;
 
View::composer(
    ['profile', 'dashboard'], MultiComposer::class
);

La methode composer accepte egalement le caractere * comme joker, vous permettant d'attacher un compositeur a toutes les vues :

use Illuminate\Support\Facades\View;
use Illuminate\View\View;
 
View::composer('*', function (View $view) {
    // ...
});

Createurs de Vues

Les "createurs" de vues sont tres similaires aux compositeurs de vues ; cependant, ils sont executes immediatement apres l'instanciation de la vue au lieu d'attendre que la vue soit sur le point d'etre rendue :

use App\View\Creators\ProfileCreator;
use Illuminate\Support\Facades\View;
 
View::creator('profile', ProfileCreator::class);

Optimiser les Vues

Par defaut, les vues de templates Blade sont compilees a la demande. Vous pouvez utiliser la commande Artisan view:cache pour precompiler toutes les vues utilisees par votre application pour de meilleures performances :

php artisan view:cache

Vous pouvez utiliser la commande view:clear pour vider le cache des vues :

php artisan view:clear

Reference

Pour plus d'informations, consultez la documentation Laravel de l'equipe Laravel.


Vous voulez lire plus de tutoriels? Découvrez notre dernier tutoriel sur Recevoir les commentaires GitLab sur WhatsApp via les webhooks.

Discutez de votre projet avec nous

Nous sommes ici pour vous aider avec vos besoins en développement Web. Planifiez un appel pour discuter de votre projet et comment nous pouvons vous aider.

Trouvons les meilleures solutions pour vos besoins.

Articles connexes

10 Les Bases de Laravel 11 : Bundling d'Assets

Apprenez les essentiels du bundling d'assets dans Laravel 11 avec Vite, couvrant l'installation, la configuration et des exemples pratiques pour le developpement web.

10 min read·