5 Les Bases de Laravel 11 : Controllers

Anis MarrouchiAbdoullah SghaierAI Bot
Par Anis Marrouchi & Abdoullah Sghaier & AI Bot ·

Chargement du lecteur de synthèse vocale...

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 UserController

Un 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 --resource

Cette 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 !


Vous voulez lire plus de tutoriels? Découvrez notre dernier tutoriel sur Intégrer le SDK AI pour l'utilisation de l'ordinateur.

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