Une stratégie de rendu détermine comment la page sera affichée.
Par défaut, pour produire la page HTML, la vue .phtml est rendu à l'aide de la classe PhpRenderer
située dans le namespace Zend\View\Renderer
.
Cette stratégie fonctionne bien dans 99% des cas.
Mais parfois, vous devrez peut-être renvoyer autre chose, par exemple, une réponse JSON ou une réponse de
flux RSS.
Une réponse au format JSON est généralement renvoyée lorsque vous implémentez une solution type API (Application Programming Interface). L'API est utilisée pour récupérer certaines données dans un format lisible par machine. Une réponse au format flux RSS est généralement utilisée pour publier des informations fréquemment modifiées, telles que des articles de blog ou des actualités.
Ainsi, ZF3 fournit trois stratégies de rendu de vue supplémentaires :
PhpRendererStrategy
).JsonStrategy
qui produit une réponse JSON.FeedStrategy
qui produit une réponse de flux RSS.Par exemple, voyons comment utiliser JsonStrategy
pour renvoyer une réponse JSON à partir d'une action
du contrôleur.
D'abord, vous devez déclarer la stratégie dans le fichier de configuration module.config.php :
<?php
return [
//...
'view_manager' => [
//...
'strategies' => [
'ViewJsonStrategy',
],
],
];
Ensuite renvoyez un JsonModel
(au lieu de l'habituel ViewModel
)
depuis la méthode d'action de votre controleur :
namespace Application\Controller;
use Zend\Mvc\Controller\ActionController;
use Zend\View\Model\JsonModel;
class IndexController extends ActionController
{
public function getJsonAction()
{
return new JsonModel([
'status' => 'SUCCESS',
'message'=>'Here is your data',
'data' => [
'full_name' => 'John Doe',
'address' => '51 Middle st.'
]
]);
}
}
Si vous ouvrez cette page dans votre navigateur, vous verrez la réponse JSON :
{'status':'SUCCESS', 'message':'Here is your data', 'data':{'full_name:'John Doe', 'address':'51 Middle st.'}}