この記事では主に、Laravel 5.5で提供されているリクエストに応答するためのレスポンシブインターフェースに関する情報を紹介しています。記事内でサンプルコードを通して紹介されているLaravel は、あらゆる人の学習や仕事に役立つ内容となっています。 、必要な友達はエディターをフォローして Laravel を学ぶことができます。
はじめに
Laravel 5.5 は次の LTS (長期サポート) バージョンでもあります。 つまり、2 年間の修正プログラムと 3 年間のセキュリティ更新プログラムが提供されます。 Laravel 5.1 についても同様ですが、2 年間のバグ修正サポートは今年終了します。
Laravel 5.5 では、ルーティングに新しい戻り値の型「Responsable」が追加されました。このインターフェイスにより、オブジェクトが コントローラー またはクロージャ ルートから返されたときに、標準の HTTP 応答インターフェイスに自動的に変換されます。 Responsable インターフェースを実装するオブジェクトは、オブジェクトを HTTP 応答オブジェクトに変換する toResponse()
という名前のメソッドを実装する必要があります。
例を見てください:
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 名前空間 の下で応答コンテンツを整理する場合は、次の例を参照できます。 。この例では、Post (複数のインスタンスのコレクション) をサポートする方法を示します。
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 レスポンシブインターフェイスの実装方法
lara のクロスドメインソリューションvel開発 詳しい説明
以上がrequest_php の例に応答するために Laravel 5.5 で提供されるレスポンシブ インターフェイスの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。