A free and open-source book on ZF3 for beginners

Translation into this language is not yet finished. You can help this project by translating the chapters and contributing your changes.

4.7. Conteneurs de variable

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:

Table 4.5. Méthodes de la classe ViewModel
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.

Top