Sortie du corps de réponse HTTP personnalisée avec CakePHP 3.4 et PSR-7
CakePHP 3.4 introduit l'utilisation d'objets de réponse conformes à PSR-7. Faire écho aux données directement via echo peut désormais déclencher des erreurs dues à des vérifications strictes des en-têtes.
Les contrôleurs ne doivent pas faire écho aux données. Utilisez plutôt les méthodes suivantes pour générer un corps HTTP personnalisé contenu :
Utilisation de l'interface de réponse 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>
Utilisation de l'interface de réponse obsolète (avant 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>
Utilisation de vues sérialisées :
<code class="php">$content = ['method' => __METHOD__, 'class' => get_called_class()]; $this->set('content', $content); $this->set('_serialize', 'content');</code>
Cette approche nécessite le composant de gestionnaire de requêtes et une URL ou des en-têtes de requête appropriés pour déclencher le rendu de la vue JSON.
Références :
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!