Laravel est un framework de développement PHP très populaire, apprécié pour son API simple mais puissante et sa boîte à outils complète. Dans Laravel, les « Actions » sont un concept qui vous permet de construire des contrôleurs et de simplifier plus facilement votre couche logique. Ce qui suit est une introduction détaillée aux étapes et aux pratiques nécessaires pour écrire Laravel Action.
Tout d'abord, vous devez créer une classe d'action. Dans Laravel 8 et supérieur, vous pouvez le créer via la commande Artisan :
php artisan make:action MyAction
Cela créera un nouveau fichier de classe "MyAction.php" pour vous dans le répertoire app/Action. Maintenant, nous pouvons commencer à écrire la logique de l’Action.
Dans votre action, vous pouvez définir une logique métier spécifique pour chaque méthode du contrôleur. Ici, nous allons créer une méthode pour gérer la logique de connexion des utilisateurs.
<?php namespace App\Actions; use Illuminate\Support\Facades\Auth; class LoginUserAction { public function execute(array $credentials) { $attempt = Auth::attempt($credentials); if (!$attempt) { throw new \Exception('Invalid login credentials'); } return Auth::user(); } }
Dans l'exemple ci-dessus, nous avons créé une action appelée LoginUserAction. Il reçoit un tableau contenant les informations de connexion de l'utilisateur, effectue une tentative de connexion et lève une exception en cas d'erreur, sinon il renvoie l'utilisateur authentifié avec succès.
Il convient de noter que nous utilisons la façade Auth de Laravel pour effectuer les opérations de connexion. Cela nous permet d'exploiter facilement le système d'authentification de Laravel.
Maintenant, nous avons créé une classe Action et défini sa logique. L'étape suivante consiste à l'utiliser dans le contrôleur.
La première étape de l'utilisation d'Action consiste à ouvrir le contrôleur et à ajouter une instruction use pour introduire la classe Action :
<?php namespace App\Http\Controllers; use App\Actions\LoginUserAction; use Illuminate\Http\Request; class AuthController extends Controller { public function login(Request $request, LoginUserAction $loginAction) { $credentials = $request->only(['email', 'password']); try { $user = $loginAction->execute($credentials); } catch (\Exception $e) { return response()->json([ 'message' => $e->getMessage() ], 401); } return response()->json(compact('user')); } }
Dans le code ci-dessus, nous avons référencé LoginUserAction à partir de notre propre espace de noms. Ensuite, nous avons ajouté la méthode login(), dont le premier paramètre est l'objet Request de Laravel et dont le deuxième paramètre est l'instance LoginUserAction que nous avons créée ci-dessus.
Dans login(), nous extrayons d'abord l'e-mail et le mot de passe en fonction du contenu de la demande, puis appelons notre action pour exécuter la logique via les paramètres $credentials. En cas de succès, nous renvoyons l'utilisateur au format JSON, sinon nous renvoyons un message d'erreur au client.
Nous pouvons maintenant accéder à notre méthode login() et appeler la méthode d'exécution dans la classe LoginUserAction. Nous transmettrons un tableau contenant des informations de connexion dans la requête HTTP et renverrons le résultat.
Définissez la route de connexion correspondante dans la route :
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\AuthController; Route::post('/login', [AuthController::class, 'login'])->name('login');
Nous pouvons maintenant accéder à la route /login de notre application laravel, qui ressemblera à ceci :
POST /login HTTP/1.1 Host: localhost:8000 Content-Type: application/json { "email": "user@example.com", "password": "my_password" }
Cela déclenchera la méthode login() que nous avons définie dans le contrôleur, appelant LoginUserAction, en transmettant l'e-mail et le mot de passe comme paramètres.
Laravel Action fournit un moyen simple et propre d'organiser votre logique métier. En déplaçant la logique métier du contrôleur vers les classes d'action, vous pouvez obtenir de nombreuses améliorations en matière de réutilisation du code et de maintenabilité.
Lorsque vous utilisez Laravel Action, vous devez suivre les deux bonnes pratiques suivantes :
Enfin, il convient de noter que la fonction Action a été introduite dans Laravel 8. Si vous utilisez une ancienne version de Laravel, vous devrez peut-être créer manuellement la classe Action et stocker le fichier de classe dans un emplacement approprié, puis Instanciez et appelez manuellement le contrôleur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!