Maîtrisez le routage Laravel : Établit le sujet principal et le niveau d'expertise.

Maîtrisez le routage Laravel : Établit le sujet principal et le niveau d'expertise.



Laravel il y a 4 mois

 

Laravel : Paramètres d'itinéraire, Nommage d'itinéraire et Groupes d'itinéraires

Ce tutoriel vous guide à travers les paramètres d'itinéraire, le nommage d'itinéraire et les groupes d'itinéraire dans Laravel. Ces concepts vous permettent de définir des URL dynamiques, de les référencer facilement et d'organiser vos routes de manière efficace.

Paramètres d'itinéraire

Les paramètres d'itinéraire vous permettent de définir des segments dynamiques dans vos URL qui capturent des données variables. Ces paramètres sont ensuite accessibles dans vos méthodes de contrôleur pour gérer des requêtes spécifiques.

Syntaxe :

PHP

Route::get('utilisateurs/{id}', function ($id) {
  // Accéder à la valeur du paramètre
  $utilisateur = Utilisateur::find($id);
  // ...
});

Dans cet exemple :

  • {id} est le nom du paramètre d'itinéraire, inclus entre accolades {}.
  • La fermeture function ($id) reçoit la valeur du paramètre id.

Accès aux valeurs des paramètres :

  • Les valeurs des paramètres sont injectées dans les arguments de votre méthode de contrôleur en fonction de leur ordre.
  • Les noms des arguments n'ont pas besoin de correspondre aux noms des paramètres.

Paramètres facultatifs :

PHP

Route::get('articles/{article?}', function ($article = null) {
  // $article sera null si non fourni
  if ($article) {
    $article = Article::find($article);
    // ...
  } else {
    // Gérer le cas où aucun article n'est spécifié
  }
});
  • Utilisez un point d'interrogation ? après le nom du paramètre pour le rendre facultatif.
  • Il aura une valeur par défaut de null s'il n'est pas fourni.

Contraintes d'expressions régulières :

PHP

Route::get('produits/{slug:^[a-z0-9-]+$}', function ($slug) {
  // Autorise uniquement les slugs avec des lettres, des chiffres et des traits d'union
  $produit = Produit::where('slug', $slug)->first();
  // ...
});
  • Définissez des contraintes à l'aide d'un deux-points : suivi d'une expression régulière.
  • Cela garantit que la valeur du paramètre correspond au modèle spécifié.

Nommage d'itinéraire

Attribuer des noms aux itinéraires facilite leur référencement tout au long de votre application, en particulier pour générer des URL, rediriger et tester.

PHP

Route::get('profil', function () {
  // ...
})->name('profil');
  • La méthode ->name('profil') attribue le nom "profil" à l'itinéraire.

Génération d'URL d'itinéraire nommé :

  • Utilisez la fonction d'assistance route() :

PHP

$urlProfil = route('profil');
  • Cela génère l'URL complète de l'itinéraire nommé "profil" en fonction de la configuration de votre itinéraire et de votre domaine.

Groupes d'itinéraires

Les groupes d'itinéraires vous permettent d'organiser vos itinéraires sous des attributs partagés tels que les intergiciels, les espaces de noms ou les préfixes. Cela favorise la réutilisation du code et des définitions d'itinéraires plus propres.

Groupe de base :

PHP

Route::group(['middleware' => 'auth'], function () {
  Route::get('tableau-de-bord', function () {
    // Itinéraire protégé accessible uniquement aux utilisateurs authentifiés
  });
  Route::get('profil', function () {
    // Autre itinéraire protégé
  });
});
  • Le premier argument de Route::group est un tableau d'attributs partagés.
  • Dans ce cas, tous les itinéraires du groupe nécessitent un middleware d'authentification.

Fonctionnalités avancées du groupe :

  • Préfixes: Ajoutez un préfixe commun à tous les itinéraires du groupe :

PHP

Route::group(['prefix' => 'admin'], function () {
  Route::get('utilisateurs', function () {
    // URL: /admin/utilisateurs
  });
  Route::get('articles', function () {
    // URL: /admin/articles
  });
});
  • Espaces de noms: Associez un espace de noms à tous les contrôleurs du groupe :

PHP

Route::group(['namespace' => 'App\Http\Controllers\Admin'], function () {  
  Route::get('utilisateurs', 'UtilisateursController@index');
  Route::get('articles', 'ArticlesController@index');
});
  • Préfixes de nom d'itinéraire: Préfixez tous les noms d'itinéraire du groupe :

PHP

Route::group(['as' => 'admin.'], function () {
  Route::get('utilisateurs', function () {
    // Nom de l'itinéraire : admin.utilisateurs
  })->name('utilisateurs');
  Route::get('articles', function () {
    // Nom de l'itinéraire : admin.articles
  })->name('articles');
});

Conclusion

En utilisant efficacement les paramètres d'itinéraire, le nommage d'itinéraire et les groupes d'itinéraire, vous pouvez créer une application Laravel bien structurée et maintenable avec des URL propres, une organisation efficace du code et une expérience de développement améliorée.

N'oubliez pas de vous référer à la documentation officielle de Laravel pour connaître la syntaxe et les fonctionnalités les plus récentes : https://laravel.com/docs/11.x/routing