Wie gebe ich benutzerdefinierte HTTP-Body-Inhalte in CakePHP 3.4 aus?

Susan Sarandon
Freigeben: 2024-10-26 04:03:03
Original
848 Leute haben es durchsucht

How to Output Custom HTTP Body Contents in CakePHP 3.4?

Ausgabe benutzerdefinierter HTTP-Body-Inhalte mit CakePHP 3.4

Im Gegensatz zu früheren Versionen erzwingt CakePHP 3.4 strikt die Trennung von Datenbearbeitung und -präsentation in Controllern. Das direkte Echo von Daten kann zu unerwarteten Fehlern führen.

Um benutzerdefinierte HTTP-Body-Inhalte auszugeben, empfiehlt CakePHP die Verwendung entweder des PSR-7-kompatiblen Antwortobjekts oder serialisierter Ansichten.

Konfigurieren des Antwortobjekts

PSR-7-kompatible Schnittstelle:

<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>
Nach dem Login kopieren

Veraltete Schnittstelle (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> Verwendung serialisierter Ansichten</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>
Nach dem Login kopieren

Dazu müssen Sie die Anforderungshandlerkomponente aktivieren und den Router so konfigurieren, dass er die Analyse für JSON-Anfragen erweitert (mit an URLs angehängter .json-Datei) oder eine entsprechende Anfrage mit einer Anwendung/JSON-Akzeptanz verwendet Header.

Fazit

Vom Echo von Daten direkt in Controllern wird in CakePHP 3.4 abgeraten. Verwenden Sie stattdessen das Antwortobjekt oder serialisierte Ansichten, um benutzerdefinierte HTTP-Body-Inhalte zuverlässig auszugeben.

Das obige ist der detaillierte Inhalt vonWie gebe ich benutzerdefinierte HTTP-Body-Inhalte in CakePHP 3.4 aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!