8 Les Bases de Laravel 11 : Vues

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 greetingL'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:cacheVous pouvez utiliser la commande view:clear pour vider le cache des vues :
php artisan view:clearReference
Pour plus d'informations, consultez la documentation Laravel de l'equipe Laravel.
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

Demarrer avec Laravel 11 : Installation, Configuration et Structure des Repertoires
Demarrer avec Laravel 11 : Installation, Configuration et Structure des Repertoires

2 Les Bases de Laravel 11 : Routage
Un guide informatif sur les bases du routage dans Laravel 11, adapte aux developpeurs de tous niveaux.

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.