Une fois que vous avez récupéré les données de la requête HTTP, vous allez faire quelque chose avec ces données (généralement, vous allez traiter les données avec votre couche modèle) pour les renvoyez depuis la méthode d'action.
Vous pouvez voir que la méthode indexAction()
du contrôleur Index renvoie une instance de la classe ViewModel
.
La classe ViewModel
est une sorte de conteneur de variable.
Toutes les variables passées en parametres seront alors automatiquement accessibles par la vue qui y est liée.
Voyons un exemple concret. Nous allons créer une autre méthode d'action dans notre classe IndexController
, que nous
appellerons aboutAction()
. L'action "about" affichera la page A Propos de notre site. Dans la méthode d'action, nous allons
créer deux variables contenant des informations de notre site, et retourner ces variables pour le rendu dans une vue à l'aide de
l'objet ViewModel
:
// La méthode d'action "about"
public function aboutAction()
{
$appName = 'HelloWorld';
$appDescription = 'Un exemple d\'application pour le guide d\'utilisation de Zend Framework 3';
// Renvoie les variables pour afficher le script à l'aide du
// conteneur de variables ViewModel
return new ViewModel([
'appName' => $appName,
'appDescription' => $appDescription
]);
}
Aux lignes 4-5, nous créons les variables $appName
et $appDescription
. Elles stockent respectivement le nom et la description
de notre application.
Dans les lignes 9-12, nous passons les variables que nous avons créées au constructeur de l'objet
ViewModel
en tant que tableau associatif. Les clés de ce tableau définissent les noms des variables qui,
seront accessibles dans la vue.
La classe ViewModel
fournit plusieurs méthodes pour définir ou extraire des variables.
La table 4.5 fournit le résumé de ces méthodes:
Nom de la méthode | Description |
---|---|
getVariable($name, $default) |
Retourne une variable en fonction de son nom (ou une valeur par défaut si la variable n'existe pas).. |
setVariable($name, $value) |
Définit une variable. |
setVariables($variables, $overwrite) |
Définit un groupe de variables, en écrasant éventuellement les variables existantes. |
getVariables() |
Retourne toutes les variables sous forme de tableau. |
clearVariables() |
Supprime toutes les variables. |