Laravel は、シンプルでエレガントな PHP Web 開発フレームワーク (PHP Web フレームワーク) です。ヌードルのような乱雑なコードから解放され、完璧なネットワーク APP を構築するのに役立ち、コードの各行が簡潔で表現力豊かになります。
Laravel 5.5 はルーティングに新しい戻り値の型を追加します: Responsable インターフェイス )。このインターフェイスにより、オブジェクトがコントローラーまたはクロージャ ルートから返されたときに、標準の HTTP 応答インターフェイスに自動的に変換されます。 Responsable インターフェイスを実装するオブジェクトはすべて、 toResponse() メソッド。オブジェクトを HTTP 応答オブジェクトに変換します。
例を見てください:
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] ); } }
ルートでこの ExampleObject を使用する場合、次のことができます:
Route::get('/hello', function() { return new ExampleObject(request('name')); });
Laravel フレームワークでは、Route クラスは応答コンテンツを準備するときにこのタイプ (Responsable インターフェイスを実装) をチェックできるようになりました。 :
if ($response instanceof Responsable) { $response = $response->toResponse(); }
複数の応答タイプを使用して応答コンテンツを AppHttpResponses 名前空間で整理する場合は、次の例を参照できます。このサンプルは、投稿をサポートする方法を示します。 (複数のインスタンスのコレクション):
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(), ]; }); } }
上記は、単純なアプリケーション シナリオをシミュレートするための基本的な例です。JSON 応答を返しますが、応答層が単に組み込み実装を使用してオブジェクトを変換するだけではないことを望みます。 JSON 化しますが、コンテンツ処理を行うためのものです。上記の例では、AppHttpResponsesResponse も想定しています。 このクラスは、いくつかの基本的な機能を提供できます。もちろん、コントローラーで直接このような変換を行う代わりに、応答層に何らかの変換コード (Fractal と同様) を含めることもできます。
上記の例で PostIndexResponse クラスと連携するコントローラー コードは次のようになります。
このインターフェイスの詳細を知りたい場合は、プロジェクト内の関連コードのコミットを表示できます。上記の内容は、Laravel 5.5 で提供されているレスポンシブ インターフェイスの詳細な説明です。皆様のお役に立てれば幸いです。
関連する推奨事項:
Laravel5.5のエラーレポートと新機能の表示を画像とテキストで紹介Laravel5.5のわかりやすいエラーレポートと詳細な説明についてPackage Auto Discoveryの詳細な紹介Laravel5.5以上がLaravel 5.5 リアクティブインターフェイスの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。