Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der in Laravel 5.5 bereitgestellten reaktionsfähigen Schnittstelle zum Antworten auf das Beispiel „requests_php“.

Detaillierte Erläuterung der in Laravel 5.5 bereitgestellten reaktionsfähigen Schnittstelle zum Antworten auf das Beispiel „requests_php“.

韦小宝
韦小宝Original
2017-12-04 11:43:471546Durchsuche

Dieser Artikel führt Sie hauptsächlich in die relevanten Informationen über die reaktionsfähige Schnittstelle ein, die in Laravel 5.5 für die Beantwortung von Anfragen bereitgestellt wird. Der im Artikel vorgestellte Laravel ist sehr detailliert und ist sehr nützlich. Das Studium oder die Arbeit eines jeden hat einen bestimmten Referenz- und Lernwert. Freunde, die es benötigen, können dem Herausgeber folgen, um Laravel zu lernen.

Vorwort

Laravel 5.5 wird auch die nächste LTS-Version (Long Term Support) sein. Das bedeutet, dass es zwei Jahre Fixes und drei Jahre Sicherheitsupdates gibt. Das Gleiche gilt für Laravel 5.1, obwohl der zweijährige Bugfix-Support dieses Jahr endet.

Laravel 5.5 fügt dem Routing einen neuen Rückgabetyp hinzu: Verantwortlich. Diese Schnittstelle ermöglicht die automatische Konvertierung von Objekten in eine Standard-HTTP-Antwortschnittstelle, wenn sie von einem Controller oder einer Schließungsroute zurückgegeben werden. Jedes Objekt, das die Responsable-Schnittstelle implementiert, muss eine Methode namens toResponse() implementieren, 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]
  );
 }
}


Bei Verwendung dieses Beispielobjekts im Routing , können Sie Folgendes tun:


Route::get('/hello', function() {
 return new ExampleObject(request('name'));
});


Im Laravel Framework kann jetzt die Route-Klasse sein vorbereitet Aktivieren Sie diesen Typ (Implementierung der Responsable-Schnittstelle), wenn Sie auf Inhalte antworten:


if ($response instanceof Responsable) {
 $response = $response->toResponse();
}


Wenn Sie ihn in AppHttpResponses Verwenden Sie mehrere Antworttypen, um Ihren Antwortinhalt im Bereich zu organisieren. Sie können sich auf das folgende Beispiel beziehen. Dieses Beispiel zeigt, wie Beiträge (eine Sammlung mehrerer Instanzen) unterstützt werden:


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 eine simulierte einfache Anwendung Szenario Einfaches Beispiel: Geben Sie eine JSON-Antwort zurück, aber Sie hoffen, dass die Antwortschicht nicht einfach die integrierte Implementierung zur JSONisierung des Objekts verwendet, sondern eine gewisse Inhaltsverarbeitung durchführt. Im obigen Beispiel wird außerdem davon ausgegangen, dass die AppHttpResponsesResponse-Klasse einige grundlegende Funktionen bereitstellen kann. 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.

Zusammenfassung

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er kann für alle hilfreich sein.


Verwandte Empfehlungen:

So implementieren Sie die responsive Schnittstelle von Laravel 5.5

Laravels Verifizierungscode-Bibliothek

Detaillierte Erläuterung domänenübergreifender Lösungen in der Laravel-Entwicklung

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der in Laravel 5.5 bereitgestellten reaktionsfähigen Schnittstelle zum Antworten auf das Beispiel „requests_php“.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn