2 min de lecture 51 vues

Contrôleur à action unique avec le Framework Laravel

kwemy94

Grant TIWA

@kwemy94

Contrôleur à action unique avec le Framework Laravel

Prérequis

Être capable de mettre sur pieds un projet Laravel.

Un contrôleur à action unique en Laravel est une classe qui contient une seule méthode, généralement la méthode __invoke(). Cela permet de simplifier le code et de rendre chaque contrôleur responsable d’une seule tâche. En supposant que nous avons un projet Laravel déjà crée, pour créer un contrôleur à action unique, il suffit d’exécuter la commande :

php artisan make:controller NomController --invokable

cette commande va nous générer un contrôleur avec une seule méthode __invoke(), idéale pour nos actions spécifiques.

<?php
 
namespace App\Http\Controllers;
 
use Illuminate\Http\Request;
 
class ExpenseController extends Controller
{
/**
* Handle the incoming request.
*/
public function __invoke(Request $request)
{
// Logique de traitement de dépense
return response()->json(['message' => 'Décaissement effectué !']);
 
}
}

Définir la route vers le contrôleur

Pour définir une route qui utilise ce contrôleur, vous pouvez faire comme suit : Dans votre fichier web.php,

Route::post('/my-expense', ExpenseController::class);

Dans cet exemple, le contrôleur ExpenseController gère uniquement la logique de traitement. La méthode __invoke() est automatiquement appelée lorsque la route /my-expense est accédée.

Bonnes pratiques

Dans un contrôleur à action unique en Laravel, certaines pratiques sont généralement déconseillées pour maintenir la clarté et la simplicité du code. Voici quelques actions à éviter :

Multiples Méthodes : Ajouter plusieurs méthodes dans un contrôleur à action unique va à l’encontre de son principe de base. Ce type de contrôleur doit se concentrer sur une seule tâche, représentée par la méthode __invoke().

Logique Complexe : Évitez d’inclure une logique trop complexe directement dans le contrôleur. Il est préférable de déléguer cette logique à des services ou des classes dédiées pour maintenir le contrôleur léger et facile à comprendre.

Dépendances Multiples : Injecter trop de dépendances dans le constructeur peut rendre le contrôleur difficile à maintenir.

Manipulation Directe de la Base de Données : Évitez d’effectuer des opérations directes sur la base de données dans le contrôleur. Utilisez des modèles ou des services pour ces opérations afin de respecter le principe de séparation des préoccupations

En suivant ces recommandations, vous pouvez maintenir vos contrôleurs à action unique simples, clairs et faciles à maintenir.

kwemy94

Grant TIWA

@kwemy94

Développeur web (Php/Laravel, React Js)

Vous aimez cet article ? Faite le savoir en partageant