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:
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. |