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. Contenedor de Variables

Después de recuperar los datos de la petición HTTP podríamos hacer algo con los datos (generalmente procesaremos los datos en nuestra capa de modelo) y regresaremos los datos desde el método de acción.

Podemos ver que el método indexAction() del controlador Index regresa una instancia de la clase ViewModel. La clase ViewModel es un tipo de contenedor de variables. Todas las variables pasadas a su constructor serán automáticamente accesibles al script de la vista.

Vamos a ver un ejemplo de la vida real. Creamos otro método de acción en la clase IndexController al que llamamos aboutAction(). La acción "about" mostrará la página Acerca de de nuestro sitio web. En el método de acción crearemos dos variables que contienen información sobre nuestro sitio web y regresaremos las variables para imprimirlos en una vista con la ayuda del objeto ViewModel:

// The "about" action
public function aboutAction()
{
    $appName = 'HelloWorld';
    $appDescription = 'A sample application for the Using Zend Framework 3 book';

    // Return variables to view script with the help of
    // ViewModel variable container
    return new ViewModel([
        'appName' => $appName,
        'appDescription' => $appDescription
    ]);
}

En las líneas 4-5 creamos las variables $appName y $appDescription. Ellas guardan respectivamente el nombre y la descripción de nuestra aplicación.

En las líneas 9-12 pasamos las variables que hemos creado al constructor del objeto ViewModel como una arreglo asociado. Las llaves del arreglo definen los nombres de las variables que, al ser retornadas, serán accesibles en el script de la vista.

La clase ViewModel provee varios métodos que podemos usar para colocar variables en el ViewModel y recuperar variables de él. La tabla 4.5 provee un resumen de los métodos:

Tabla 4.5. Métodos de la clase ViewModel
Nombre del Método Descripción
getVariable($name, $default) Regresa una variable a partir de su nombre (o el valor por defecto si la variable no existe).
setVariable($name, $value) Coloca una variable.
setVariables($variables, $overwrite) Coloca un grupo de variables, opcionalmente sobrescribe las que existen.
getVariables() Regresa todas las variables como un arreglo.
clearVariables() Remueve todas las variables.

Top