Maison >développement back-end >tutoriel php >Comment générer du contenu de corps HTTP personnalisé dans 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.
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.
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!