> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Vues

> Comment créer des vues Laravel, les retourner depuis des routes ou des contrôleurs, et leur transmettre des données.

## Introduction

Retourner l'intégralité d'un document HTML sous forme de chaîne depuis une route ou un contrôleur n'est pas réaliste.
Les vues vous permettent de placer tout le HTML dans des fichiers séparés.

Les vues séparent la logique du contrôleur et de l'application de la logique de présentation, et sont stockées dans le répertoire `resources/views`.
Avec Laravel, on écrit généralement les vues à l'aide du [langage de template Blade](/fr/blade).

```blade theme={null}
<!-- resources/views/greeting.blade.php -->
<html>
    <body>
        <h1>Bonjour, {{ $name }}</h1>
    </body>
</html>
```

Cette vue est stockée dans `resources/views/greeting.blade.php` et peut être retournée avec le helper global `view`.

```php theme={null}
Route::get('/', function () {
    return view('greeting', ['name' => 'Taro']);
});
```

## Création de vues

Pour créer une vue, placez un fichier portant l'extension `.blade.php` dans le répertoire `resources/views`, ou utilisez la commande Artisan.

```shell theme={null}
php artisan make:view greeting
```

L'extension `.blade.php` indique au framework que le fichier contient un [template Blade](/fr/blade).

## Retour d'une vue

Une fois la vue créée, vous pouvez la retourner depuis une route ou un contrôleur avec le helper global `view`.

```php theme={null}
Route::get('/', function () {
    return view('greeting', ['name' => 'Taro']);
});
```

Vous pouvez également utiliser la façade `View`.

```php theme={null}
use Illuminate\Support\Facades\View;

return View::make('greeting', ['name' => 'Taro']);
```

Le premier argument du helper `view` correspond au nom du fichier de vue dans le répertoire `resources/views`.
Le second argument est un tableau de données à mettre à disposition de la vue.

### Répertoires de vues imbriqués

Les vues peuvent être imbriquées dans des sous-répertoires de `resources/views`.
Pour référencer une vue imbriquée, utilisez la notation « point ».

Par exemple, une vue stockée dans `resources/views/admin/profile.blade.php` peut être retournée ainsi :

```php theme={null}
return view('admin.profile', $data);
```

<Warning>
  N'incluez pas le caractère `.` dans les noms de répertoires de vues.
</Warning>

### Retour de la première vue existante

La méthode `first` de la façade `View` retourne la première vue existante parmi un tableau de vues.

```php theme={null}
use Illuminate\Support\Facades\View;

return View::first(['custom.admin', 'admin'], $data);
```

### Vérification de l'existence d'une vue

Pour vérifier qu'une vue existe, utilisez la méthode `exists` de la façade `View`.

```php theme={null}
use Illuminate\Support\Facades\View;

if (View::exists('admin.profile')) {
    // ...
}
```

## Transmission de données aux vues

Comme vu dans l'exemple précédent, vous pouvez transmettre un tableau de données à la vue afin de les utiliser.

```php theme={null}
return view('greetings', ['name' => 'Hanako']);
```

Les données doivent être un tableau clé/valeur.
Dans la vue, vous accédez à chaque valeur via sa clé.

Vous pouvez également ajouter des données individuellement avec la méthode `with`.
`with` retourne une instance de l'objet vue, ce qui permet de chaîner les appels.

```php theme={null}
return view('greeting')
    ->with('name', 'Hanako')
    ->with('occupation', 'Ingénieure');
```

## Partager des données avec toutes les vues

Pour partager des données avec toutes les vues, utilisez la méthode `share` de la façade `View`.
Placez généralement ce code dans la méthode `boot` d'un service provider.

```php theme={null}
<?php

namespace App\Providers;

use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Amorçage des services de l'application.
     */
    public function boot(): void
    {
        View::share('appName', 'MyApp');
    }
}
```

## Optimisation des vues

Par défaut, les vues Blade sont compilées à la demande.
Cette compilation lors de la requête peut légèrement impacter les performances.

La commande Artisan `view:cache` permet de pré-compiler toutes les vues utilisées par l'application.
Il est recommandé de l'exécuter dans le cadre de votre processus de déploiement.

```shell theme={null}
php artisan view:cache
```

Pour vider le cache des vues, utilisez la commande suivante :

```shell theme={null}
php artisan view:clear
```

## Prochaines étapes

<Card title="Templates Blade" icon="code" href="/fr/blade">
  Découvrez comment construire des vues dynamiques à l'aide de la syntaxe Blade.
</Card>


## Related topics

- [Installation](/fr/installation.md)
- [Kits de démarrage](/fr/starter-kits.md)
- [Introduction à l'authentification](/fr/authentication.md)
- [Introduction à Vue.js — les bases pour l'utiliser avec Inertia × Laravel](/fr/blog/vue-introduction.md)
- [Développement de packages Laravel](/fr/advanced/package-development.md)
