CakePHP 3.4 でカスタム HTTP ボディコンテンツを出力するには?

Susan Sarandon
リリース: 2024-10-26 04:03:03
オリジナル
848 人が閲覧しました

How to Output Custom HTTP Body Contents in CakePHP 3.4?

CakePHP 3.4 でカスタム HTTP 本文コンテンツを出力

以前のバージョンとは異なり、CakePHP 3.4 はコントローラーでのデータ操作とプレゼンテーションの分離を厳密に強制します。データを直接エコーすると、予期しないエラーが発生する可能性があります。

カスタム HTTP 本文のコンテンツを出力するには、CakePHP は PSR-7 準拠の応答オブジェクトまたはシリアル化されたビューのいずれかを使用することをお勧めします。

応答オブジェクトの設定

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;<h3>シリアル化されたビューの使用</h3>
<pre class="brush:php;toolbar:false"><code class="php">$content = ['method' => __METHOD__, 'class' => get_called_class()];

$this->set('content', $content);
$this->set('_serialize', 'content');</code>
ログイン後にコピー

これには、リクエスト ハンドラー コンポーネントを有効にし、JSON リクエスト (URL に .json を追加) の解析を拡張するか、アプリケーション/json accept で適切なリクエストを使用するようにルーターを設定する必要があります。 header.

結論

コントローラー内でデータを直接エコーすることは、CakePHP 3.4 では推奨されません。代わりに、応答オブジェクトまたはシリアル化されたビューを使用して、カスタム HTTP 本文のコンテンツを確実に出力します。

以上がCakePHP 3.4 でカスタム HTTP ボディコンテンツを出力するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!