Laravel 5.5の対応するインターフェースを使用するにはどうすればよいですか?

php中世界最好的语言
リリース: 2023-03-18 06:56:01
オリジナル
1858 人が閲覧しました

Laravel 5.5 が非常に重要なバージョンであることはわかっています。Laravel 5.5: Responsable インターフェイスのルーティングに新しい戻り値の型が追加されました。今日は事例を挙げて詳しくご紹介します。

例を見てください:

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 Framework では、Route クラスは、応答コンテンツ (Responsable インターフェイスの実装) タイプ:

if ($response instanceof Responsable) {
 $response = $response->toResponse();
}
ログイン後にコピー


複数の応答タイプを使用して、AppHttpResponses 名前空間 の下で応答コンテンツを整理する場合は、次の例を参照できます。この例では、Posts (複数のインスタンスのコレクション) をサポートする方法を示します。

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 応答を返しますが、応答層が単に構築されたものを使用しないことを望んでいます。 -in 実装はオブジェクトを JSON 化しますが、一部のコンテンツ処理を行います。上記の例では、AppHttpResponsesResponse クラスがいくつかの基本的な機能を提供できることも前提としています。もちろん、コントローラーでそのような変換を直接行う代わりに、応答レイヤーに何らかの変換コード (Fractal と同様) を含めることもできます。

上記の例で PostIndexResponse クラスと連携するコントローラー コードは次のようになります:


これらの事例を読んだ後は、メソッドを習得したと思います。さらに興味深い内容については、他の関連記事に注目してください。 PHP中国語ウェブサイトで!

関連書籍:

Pythonでの二分探索とクイックソートの例の詳細な説明

php再帰的および非再帰実装のための二分探索のサンプルコード

phpでの二分探索の詳細な説明

以上がLaravel 5.5の対応するインターフェースを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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