Laravel ist ein sehr beliebtes PHP-Entwicklungsframework, das für seine einfache, aber leistungsstarke API und sein umfassendes Toolkit bekannt ist. In Laravel sind „Aktionen“ ein Konzept, mit dem Sie Controller erstellen und Ihre Logikebene einfacher vereinfachen können. Im Folgenden finden Sie eine detaillierte Einführung in die Schritte und Praktiken zum Schreiben von Laravel Action.
Zuerst müssen Sie eine Aktionsklasse erstellen. In Laravel 8 und höher können Sie es mit dem Artisan-Befehl erstellen:
php artisan make:action MyAction
Dadurch wird eine neue Klassendatei „MyAction.php“ für Sie im Verzeichnis app/Action erstellt. Jetzt können wir mit dem Schreiben der Logik der Aktion beginnen.
In Ihrer Aktion können Sie für jede Methode im Controller eine spezifische Geschäftslogik definieren. Hier erstellen wir eine Methode zur Handhabung der Logik der Benutzeranmeldung.
<?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(); } }
Im obigen Beispiel haben wir eine Aktion namens LoginUserAction erstellt. Es empfängt ein Array mit den Anmeldeinformationen des Benutzers, führt einen Anmeldeversuch durch und löst eine Ausnahme aus, wenn ein Fehler auftritt. Andernfalls wird der erfolgreich authentifizierte Benutzer zurückgegeben.
Es ist erwähnenswert, dass wir die Auth-Fassade von Laravel verwenden, um Anmeldevorgänge durchzuführen. Dadurch können wir das Authentifizierungssystem von Laravel problemlos nutzen.
Jetzt haben wir eine Action-Klasse erstellt und ihre Logik definiert. Der nächste Schritt besteht darin, es im Controller zu verwenden.
Der erste Schritt bei der Verwendung von Action besteht darin, den Controller zu öffnen und eine Use-Anweisung hinzuzufügen, um die Action-Klasse einzuführen:
<?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')); } }
Im obigen Code haben wir auf LoginUserAction aus unserem eigenen Namespace verwiesen. Dann haben wir die Methode login() hinzugefügt, deren erster Parameter das Request-Objekt von Laravel und deren zweiter Parameter die oben erstellte LoginUserAction-Instanz ist.
In login() extrahieren wir zunächst die E-Mail-Adresse und das Passwort basierend auf dem Anforderungsinhalt und rufen dann unsere Aktion auf, um die Logik über die $credentials-Parameter auszuführen. Bei Erfolg geben wir den Benutzer im JSON-Format zurück, andernfalls geben wir eine Fehlermeldung an den Client zurück.
Jetzt können wir auf unsere login()-Methode zugreifen und die Ausführungsmethode in der LoginUserAction-Klasse aufrufen. Wir übergeben in der HTTP-Anfrage ein Array mit einigen Anmeldeinformationen und geben das Ergebnis zurück.
Definieren Sie die entsprechende Login-Route in der Route:
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\AuthController; Route::post('/login', [AuthController::class, 'login'])->name('login');
Jetzt können wir auf die /login-Route unserer Laravel-Anwendung zugreifen, die wie folgt aussieht:
POST /login HTTP/1.1 Host: localhost:8000 Content-Type: application/json { "email": "user@example.com", "password": "my_password" }
Dadurch wird die login()-Methode ausgelöst, die wir im Controller definiert haben. Aufruf von LoginUserAction, Übergabe von E-Mail und Passwort als Parameter.
Laravel Action bietet eine einfache, saubere Möglichkeit, Ihre Geschäftslogik zu organisieren. Durch die Verlagerung der Geschäftslogik aus dem Controller in Aktionsklassen können Sie zahlreiche Verbesserungen bei der Wiederverwendung von Code und bei der Wartbarkeit erzielen.
Bei der Verwendung von Laravel Action sollten Sie die folgenden zwei Best Practices befolgen:
Abschließend sei darauf hingewiesen, dass die Action-Funktion in Laravel 8 eingeführt wurde. Wenn Sie eine ältere Version von Laravel verwenden, müssen Sie möglicherweise die Action-Klasse manuell erstellen und die Klassendatei an einem geeigneten Ort speichern Instanziieren Sie den Controller manuell und rufen Sie ihn auf.
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Schreibschritte und -praktiken von Laravel Action. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!