How to Output Custom HTTP Response Body Contents Using CakePHP 3.4 and PSR-7?

Patricia Arquette
Release: 2024-10-27 12:22:02
Original
359 people have browsed it

How to Output Custom HTTP Response Body Contents Using CakePHP 3.4 and PSR-7?

Custom HTTP Response Body Output with CakePHP 3.4 and PSR-7

CakePHP 3.4 introduces the use of PSR-7 compliant response objects. Echoing data directly via echo can now trigger errors due to strict header checks.

Controllers should not echo data. Instead, use the following methods to output custom HTTP body contents:

Using PSR-7 Response Interface:

<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>
Copy after login

Using Deprecated Response Interface (prior to 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>
Copy after login

Using Serialized Views:

<code class="php">$content = ['method' => __METHOD__, 'class' => get_called_class()];

$this->set('content', $content);
$this->set('_serialize', 'content');</code>
Copy after login

This approach requires the Request Handler Component and proper URL or request headers to trigger JSON view rendering.

References:

  • [Cookbook: Controllers & Actions](https://book.cakephp.org/4/en/controllers.html#controller-actions)
  • [Cookbook: Request & Response Objects & Setting Body](https://book.cakephp.org/4/en/controllers.html#setting-the-body)
  • [Cookbook: Views & JSON/XML](https://book.cakephp.org/4/en/views.html#json-and-xml-views)
  • [PHP FIG: PSR-7 HTTP Message Interfaces](https://www.php-fig.org/psr/psr-7/)

The above is the detailed content of How to Output Custom HTTP Response Body Contents Using CakePHP 3.4 and PSR-7?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!