Laravel ist ein einfaches und elegantes PHP-Webentwicklungs-Framework (PHP Web Framework). Es kann Sie von unordentlichen Codes wie Nudeln befreien; es kann Ihnen helfen, eine perfekte Netzwerk-APP zu erstellen, und jede Codezeile kann prägnant und ausdrucksstark sein.
Laravel 5.5 fügt dem Routing einen neuen Rückgabetyp hinzu: Verantwortliche Schnittstelle ). Diese Schnittstelle ermöglicht die automatische Konvertierung von Objekten in eine Standard-HTTP-Antwortschnittstelle, wenn sie von einem Controller oder einer Abschlussroute zurückgegeben werden. Jedes Objekt, das die Responsable-Schnittstelle implementiert, muss a implementieren toResponse()-Methode, die das Objekt in ein HTTP-Antwortobjekt konvertiert.
Sehen Sie sich das Beispiel an:
use Illuminate\Contracts\Support\Responsable; class ExampleObject implements Responsable { public function __construct($name = null) { $this->name = $name ?? 'Teapot'; } public function status() { switch(strtolower($this->name)) { case 'teapot': return 418; default: return 200; } } public function toResponse() { return response( "Hello {$this->name}", $this->status(), ['X-Person' => $this->name] ); } }
Wenn Sie dieses Beispielobjekt im Routing verwenden, können Sie Folgendes tun:
Route::get('/hello', function() { return new ExampleObject(request('name')); });
Im Laravel-Framework kann die Route-Klasse Suchen Sie jetzt bei der Vorbereitung des Antwortinhalts nach diesem Typ (Implementierung der Responsable-Schnittstelle):
if ($response instanceof Responsable) { $response = $response->toResponse(); }
Wenn Sie zum Organisieren Ihres Antwortinhalts mehrere Antworttypen unter dem AppHttpResponses-Namespace verwenden, können Sie sich auf das folgende Beispiel beziehen. Dieses Beispiel zeigt, wie Beiträge unterstützt werden (Sammlung bestehend aus mehreren Instanzen):
posts = $posts; } public function toResponse() { return response()->json($this->transformPosts()); } protected function transformPosts() { return $this->posts->map(function ($post) { return [ 'title' => $post->title, 'description' => $post->description, 'body' => $post->body, 'published_date' => $post->published_at->toIso8601String(), 'created' => $post->created_at->toIso8601String(), ]; }); } }
Das Obige ist nur ein einfaches Beispiel zur Simulation eines einfachen Anwendungsszenarios: Geben Sie eine JSON-Antwort zurück, aber Sie hoffen, dass die Antwortschicht nicht einfach die eingebaute verwendet. in der Implementierung, um das Objekt in JSON zu konvertieren isierung, sondern um eine gewisse Inhaltsverarbeitung durchzuführen. Im obigen Beispiel wird auch davon ausgegangen, dass AppHttpResponsesResponse Diese Klasse kann einige Grundfunktionen bereitstellen. Natürlich kann die Antwortschicht auch einen Konvertierungscode enthalten (ähnlich wie bei Fractal), anstatt eine solche Konvertierung direkt im Controller durchzuführen.
Der Controller-Code, der im obigen Beispiel mit der PostIndexResponse-Klasse zusammenarbeitet, ähnelt dem folgenden:
Wenn Sie weitere Details zu dieser Schnittstelle erfahren möchten, können Sie das Commit der entsprechenden Schnittstelle anzeigen Code im Projekt.
Der obige Inhalt ist eine detaillierte Erklärung der in Laravel 5.5 bereitgestellten reaktionsfähigen Schnittstelle zur Beantwortung von Anfragen. Ich hoffe, dass sie allen helfen kann.
Verwandte Empfehlungen:
Laravel5.5 neue Funktionen, Fehlerberichterstattung und grafische Einführung der Anzeige
Über benutzerfreundliche Fehlerberichterstattung in Laravel5. 5 Anzeige und ausführliche Erklärung
Detaillierte Einführung in die automatische Paketerkennung in Laravel5.5
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die reaktive Schnittstelle von Laravel 5.5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!