Laravel 5.5 リアクティブインターフェイスの実装方法

小云云
リリース: 2023-03-17 17:20:02
オリジナル
1995 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート