Maison  >  Article  >  développement back-end  >  Comment générer du contenu de corps HTTP personnalisé dans CakePHP 3.4 ?

Comment générer du contenu de corps HTTP personnalisé dans CakePHP 3.4 ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 04:03:03849parcourir

How to Output Custom HTTP Body Contents in CakePHP 3.4?

Sortie du contenu du corps HTTP personnalisé avec CakePHP 3.4

Contrairement aux versions précédentes, CakePHP 3.4 applique strictement la séparation de la manipulation des données et de la présentation dans les contrôleurs. Faire écho directement aux données peut entraîner des erreurs inattendues.

Pour afficher le contenu du corps HTTP personnalisé, CakePHP recommande d'utiliser soit l'objet de réponse conforme PSR-7, soit des vues sérialisées.

Configuration de l'objet de réponse

Interface conforme 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>

Interface obsolète (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> Utilisation de vues sérialisées</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>

Cela nécessite que vous activiez le composant de gestionnaire de requêtes et que vous configuriez le routeur pour étendre l'analyse des requêtes JSON (avec .json ajouté aux URL) ou utiliser une requête appropriée avec une application/json accept header.

Conclusion

L'écho des données directement dans les contrôleurs est déconseillé dans CakePHP 3.4. Utilisez plutôt l'objet de réponse ou des vues sérialisées pour générer de manière fiable le contenu du corps HTTP personnalisé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn