ホームページ >バックエンド開発 >PHPチュートリアル >CakePHP 3.4 と PSR-7 を使用してカスタム HTTP 応答本文の内容を出力する方法は?
CakePHP 3.4 および PSR-7 によるカスタム HTTP 応答本文出力
CakePHP 3.4 では、PSR-7 準拠の応答オブジェクトの使用が導入されています。 echo 経由でデータを直接エコー すると、厳密なヘッダー チェックが原因でエラーが発生する可能性があります。
コントローラーはデータをエコーすべきではありません。 代わりに、次のメソッドを使用してカスタム HTTP ボディを出力します。内容:
PSR-7 応答インターフェイスの使用:
<code class="php">$content = json_encode(['method' => __METHOD__, 'class' => get_called_class()]); $this->response = $this->response->withStringBody($content); $this->response = $this->response->withType('json'); return $this->response;</code>
非推奨の応答インターフェイスの使用 (CakePHP 3.4.3 より前):
<code class="php">$content = json_encode(['method' => __METHOD__, 'class' => get_called_class()]); $this->response->body($content); $this->response->type('json'); return $this->response;</code>
シリアル化されたビューの使用:
<code class="php">$content = ['method' => __METHOD__, 'class' => get_called_class()]; $this->set('content', $content); $this->set('_serialize', 'content');</code>
このアプローチでは、リクエスト ハンドラー コンポーネントと、JSON ビューのレンダリングをトリガーするための適切な URL またはリクエスト ヘッダーが必要です。
参考文献:
以上がCakePHP 3.4 と PSR-7 を使用してカスタム HTTP 応答本文の内容を出力する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。