Contactez-nous

Etape 1 : Définir la route dans `routes/web.php`

Apprenez à définir une route dans le fichier routes/web.php de Laravel. Cette première étape cruciale permet de lier une URL à une action, comme une méthode de contrôleur. Essentiel pour créer des pages web.

Le rôle central du fichier `routes/web.php`

Dans une application Laravel, le fichier routes/web.php est le lieu principal où vous définissez comment votre application répond aux requêtes HTTP provenant d'un navigateur web. Chaque fois qu'un utilisateur saisit une URL ou clique sur un lien pointant vers votre site, c'est le système de routage de Laravel qui, en consultant ce fichier (parmi d'autres possibles comme routes/api.php pour les API), détermine quelle logique doit être exécutée.

Définir une route est donc la première étape concrète pour rendre une nouvelle section ou fonctionnalité de votre site accessible. Une route est essentiellement une instruction qui dit à Laravel : "Quand une requête arrive pour cette URL avec cette méthode HTTP, exécute cette action". L'action peut être une fonction anonyme (closure) ou, de manière plus structurée et recommandée pour la plupart des cas, une méthode spécifique d'un contrôleur.

Pour notre objectif de créer une page basique, nous allons définir une route qui mappe une URL simple, par exemple /mapremierepage, à une méthode d'un contrôleur que nous nommerons PageController. Cette approche favorise une meilleure organisation du code à mesure que votre application grandit.

Syntaxe de base pour définir une route GET

Ouvrez le fichier routes/web.php situé à la racine de votre projet Laravel. Vous y trouverez probablement déjà quelques routes d'exemple. Pour ajouter notre nouvelle route, nous utiliserons la façade Route et sa méthode get(), car nous voulons que notre page soit accessible via une requête HTTP GET (la méthode standard pour consulter une page web).

Voici la syntaxe pour définir notre route, en supposant que nous allons créer un PageController avec une méthode afficherMaPremierePage :

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PageController; // Assurez-vous d'importer le contrôleur

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

// Notre nouvelle route
Route::get('/mapremierepage', [PageController::class, 'afficherMaPremierePage']);

Analysons cette ligne :

  • use App\Http\Controllers\PageController; : Au début du fichier (ou au moins avant sa première utilisation), il est crucial d'importer la classe du contrôleur que vous allez utiliser. Si vous oubliez cette ligne, Laravel ne saura pas où trouver PageController. Si votre contrôleur est dans un sous-dossier, par exemple App\Http\Controllers\Frontend\PageController, l'import sera use App\Http\Controllers\Frontend\PageController;.
  • Route::get(...) : Indique que cette route répondra aux requêtes HTTP de type GET. Laravel propose des méthodes correspondantes pour d'autres verbes HTTP (Route::post(), Route::put(), Route::delete(), etc.).
  • '/mapremierepage' : C'est l'URI (Uniform Resource Identifier) de la route. C'est la partie de l'URL qui vient après le nom de domaine de votre application. Par exemple, si votre application tourne sur http://localhost:8000, cette page sera accessible à http://localhost:8000/mapremierepage. L'URI doit commencer par un /.
  • [PageController::class, 'afficherMaPremierePage'] : C'est la définition de l'action à exécuter. C'est un tableau où le premier élément est le nom complet de la classe du contrôleur (PageController::class renvoie la chaîne de caractères du nom de la classe avec son namespace) et le second élément est le nom de la méthode à appeler dans ce contrôleur (ici, 'afficherMaPremierePage'). C'est la syntaxe recommandée depuis Laravel 8 pour appeler des méthodes de contrôleur.

Alternative : route avec une closure (fonction anonyme)

Pour des cas très simples ou pour des tests rapides, Laravel permet aussi de définir l'action directement dans le fichier de routes à l'aide d'une fonction anonyme (closure). Bien que moins organisée pour des applications d'envergure, cette approche est plus directe pour des petites tâches.

Si nous voulions que notre route /mapremierepage retourne directement une simple chaîne de caractères sans passer par un contrôleur, nous pourrions écrire :

Route::get('/mapremierepage', function () {
    return 'Bienvenue sur ma première page Laravel !';
});

Ou si nous voulions retourner une vue directement (en supposant qu'une vue mapremierepage.blade.php existe dans resources/views/) :

Route::get('/mapremierepage', function () {
    return view('mapremierepage');
});

Cependant, pour ce guide, nous allons nous en tenir à l'approche utilisant un contrôleur, car elle est plus scalable et suit mieux les principes de séparation des préoccupations. Une fois la route définie dans routes/web.php et le fichier sauvegardé, Laravel est maintenant conscient de cette nouvelle URL. La prochaine étape sera de créer le contrôleur et la méthode spécifiés dans la définition de la route.

Vérification et prochaines étapes

Après avoir ajouté votre route, il est important de s'assurer qu'il n'y a pas d'erreurs de syntaxe dans le fichier routes/web.php. Une simple virgule manquante ou un mauvais nom de classe peut empêcher votre application de fonctionner.

A ce stade, si vous essayez d'accéder à http://localhost:8000/mapremierepage dans votre navigateur (en supposant que votre serveur de développement Laravel est lancé via php artisan serve), vous obtiendrez probablement une erreur. Cette erreur indiquera typiquement que la classe PageController n'existe pas ou que la méthode afficherMaPremierePage n'est pas trouvée dans ce contrôleur. C'est normal, car nous n'avons pas encore créé ces éléments. C'est précisément ce que nous allons aborder dans l'étape suivante : la création du contrôleur et de sa méthode.

Cette première étape de définition de la route est fondamentale. Elle établit le contrat entre une URL et une action spécifique dans votre application, servant de point de départ pour toute interaction utilisateur basée sur la navigation web.