Table of Contents
Gérer les Contrôleurs et les Routes dans une Application Laravel
Introduction
Les contrôleurs sont un élément clé de l’architecture d’une application Laravel. Ils sont chargés de gérer les routes et de passer les requêtes HTTP à travers votre application. Dans ce tutoriel, nous allons explorer comment créer et utiliser des contrôleurs pour organiser la logique de vos routes.
Création d’un Contrôleur
Pour commencer, nous allons créer un contrôleur avec l’aide de l’outil Artisan de Laravel. Ouvrez votre console et exécutez la commande suivante :
php artisan make:controller TasksController
Cette commande créera un nouveau fichier TasksController.php dans le répertoire app/Http/Controllers. Ouvrez ce fichier et modifiez-le comme suit :
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TasksController extends Controller
{
public function index()
{
return 'Hello, World!';
}
}
Nous venons de créer un contrôleur avec une méthode index() qui retourne simplement le texte “Hello, World!”.
Liaison des Routes
Maintenant que nous avons notre contrôleur, il faut lier les routes à nos méthodes. Dans le fichier routes/web.php, ajoutez la ligne suivante :
Route::get('/', 'TasksController@index');
Cette ligne liait la route / à la méthode index() de notre contrôleur.
Contrôleurs et Noms d’Espace
Lorsque vous référez un contrôleur dans une route, vous pouvez omettre le nom de l’espace (App\Http\Controllers\) si vous êtes déjà dans cet espace. Par exemple, pour accéder à la méthode index() de notre contrôleur, nous pouvons simplement utiliser :
Route::get('/', 'TasksController@index');
Méthodes Communes
Les contrôleurs peuvent contenir des méthodes pour gérer différentes actions, comme créer, lire, mettre à jour ou supprimer des ressources. Voici un exemple de méthode index() qui affiche tous les tâches :
public function index()
{
return view('tasks.index')->with('tasks', Task::all());
}
Cette méthode utilise la vue tasks.index et passe une variable $tasks contenant tous les tâches à cette vue.
Génération de Contrôleurs Ressources
Si vous avez utilisé l’outil Artisan avant Laravel 5.3, vous pourriez être habitué à utiliser la commande php artisan make:controller TasksController --resource. Cette commande génère automatiquement des méthodes pour les routes CRUD (Create, Read, Update, Delete). Pour obtenir ce comportement dans Laravel 5.3+, vous pouvez passer la option --resource lors de la création du contrôleur :
php artisan make:controller TasksController --resource
Entrées Utilisateur
Les contrôleurs peuvent également gérer les entrées utilisateur en utilisant la méthode request() pour récupérer les données provenant des requêtes HTTP. Voici un exemple de méthode store() qui crée une nouvelle tâche à partir des données fournies par l’utilisateur :
public function store()
{
Task::create(request()->only(['title', 'description']));
return redirect('tasks');
}
Cette méthode utilise la méthode request()->only() pour récupérer les champs title et description de la requête HTTP, puis crée une nouvelle tâche à partir de ces données.
Injecter des Dépendances dans les Contrôleurs
Laravel fournit également un moyen d’injecter des dépendances dans les contrôleurs en utilisant des façades et des helpers globaux. Cela vous permet de récupérer des informations sur la requête courante, l’utilisateur actuel ou encore les données provenant de la session.
Conclusion
Dans ce tutoriel, nous avons vu comment créer et utiliser des contrôleurs pour gérer les routes dans une application Laravel. Nous avons également couvert les méthodes communes que vous pouvez utiliser dans vos contrôleurs pour gérer les entrées utilisateur et les opérations CRUD. N’hésitez pas à explorer davantage les fonctionnalités de Laravel pour améliorer la structure de votre code.
**Prochaines étapes **
- Recherchez comment utiliser des façades et des helpers globaux pour récupérer des informations sur la requête courante, l’utilisateur actuel ou encore les données provenant de la session.
- Explorez comment créer des vues et les lier à vos contrôleurs pour afficher les données provenant de votre base de données.
In-Article Ad
Dev Mode
Mahmoud DEVO
Senior Full-Stack Developer
I'm a passionate full-stack developer with 10+ years of experience building scalable web applications. I write about Vue.js, Node.js, PostgreSQL, and modern DevOps practices.
Enjoyed this article?
Subscribe to get more tech content delivered to your inbox.
Related Articles
Gestion des fichiers et telechargements dans Laravel : File, Download et StreamDownload
Guide complet pour gerer fichiers et telechargements dans Laravel. Utilisez File facade, response()->download() et streamDownload() efficacement.
Gerer les donnees utilisateur avec Laravel Request : input, JSON, fichiers et segments URL
Guide complet sur la classe Request de Laravel : detection, validation, acces aux donnees JSON, upload de fichiers et segments de route.
Commandes Artisan Laravel : key:generate, migrations, make:command et automatisation
Maitrisez les commandes Artisan de Laravel : generation de cle, migrations, creation de commandes personnalisees et automatisation des taches.