5 Les Bases de Laravel 11 : Controllers

Dans Laravel, les controllers vous permettent de regrouper la logique de traitement des requetes liees dans une seule classe. Cela rend votre code plus organise et plus facile a maintenir. Ce tutoriel couvrira les bases de la creation et de l'utilisation des controllers dans Laravel 11.
Introduction aux Controllers
Au lieu de definir toute votre logique de traitement des requetes sous forme de closures dans vos fichiers de routes, vous pouvez organiser ce comportement en utilisant des classes de controller. Les controllers peuvent regrouper la logique de traitement des requetes liees dans une seule classe. Par exemple, un UserController pourrait gerer toutes les requetes entrantes liees aux utilisateurs, y compris l'affichage, la creation, la mise a jour et la suppression des utilisateurs.
Ecrire des Controllers
Controllers de base
Pour generer rapidement un nouveau controller, utilisez la commande Artisan make:controller. Par defaut, les controllers sont stockes dans le repertoire app/Http/Controllers :
php artisan make:controller UserControllerUn controller de base peut avoir n'importe quel nombre de methodes publiques qui repondent aux requetes HTTP entrantes :
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function show($id)
{
return view('user.profile', ['user' => User::findOrFail($id)]);
}
}Une fois que vous avez ecrit une classe et une methode de controller, vous pouvez definir une route vers la methode du controller comme suit :
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);Lorsqu'une requete entrante correspond a l'URI de route specifiee, la methode show de la classe UserController sera invoquee, et les parametres de route seront passes a la methode.
Controllers a action unique
Si une action de controller est particulierement complexe, vous pourriez trouver pratique de dedier une classe de controller entiere a cette action unique. Pour accomplir cela, vous pouvez definir une methode __invoke unique dans le controller :
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class ShowProfile extends Controller
{
public function __invoke($id)
{
return view('user.profile', ['user' => User::findOrFail($id)]);
}
}Vous pouvez ensuite enregistrer le controller avec la route comme suit :
use App\Http\Controllers\ShowProfile;
Route::get('/user/{id}', ShowProfile::class);Middleware dans les Controllers
Pour assigner un middleware a un controller, utilisez la methode middleware dans le constructeur de votre controller. Le middleware peut etre assigne a une action specifique du controller ou a l'ensemble du controller :
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function show($id)
{
return view('user.profile', ['user' => User::findOrFail($id)]);
}
}Resource Controllers
Les resource controllers facilitent la gestion de toutes les operations CRUD courantes pour une ressource en une seule ligne de code. Pour generer un resource controller, utilisez l'option --resource :
php artisan make:controller PhotoController --resourceCette commande generera un controller avec des methodes pour gerer toutes les operations CRUD. Vous pouvez enregistrer une route de resource controller en utilisant la methode Route::resource :
use App\Http\Controllers\PhotoController;
Route::resource('photos', PhotoController::class);En savoir plus sur les controllers Laravel dans la documentation officielle de Laravel.
Conclusion
Les controllers sont une fonctionnalite puissante dans Laravel qui aide a garder votre code organise et gerable. Ce tutoriel a couvert comment creer et utiliser des controllers dans Laravel 11. Pour des informations plus detaillees, consultez la documentation officielle de Laravel.
Bon codage avec Laravel 11 !
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

4 Les Bases de Laravel 11 : Protection CSRF
Un article instructif sur la protection CSRF dans Laravel 11.

3 Les Bases de Laravel 11 : Middleware
Un article instructif sur les bases du middleware dans Laravel 11.

1 Les Bases de Laravel 11 : PHP en 15 minutes
Un article instructif qui enseigne les bases du langage de programmation PHP.