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.14. Los Nombres de las Plantillas de vista

Cuando regresamos datos con el contenedor de variables ViewModel desde nuestro método de acción del controlador Zend Framework de alguna manera conoce el nombre que corresponde al archivo de plantilla de vista. Por ejemplo, para nuestro método aboutAction() del IndexController ZF3 usa automáticamente la plantilla de vista about.phtml.

ZF3 determina el nombre correcto de la plantilla de vista por medio del nombre del módulo, el nombre del controlador y el nombre de la acción. Por ejemplo, la acción IndexController::aboutAction() que pertenece al módulo Application tendrá la plantilla de vista por defecto application/index/about.phtml.

Si el nombre de nuestro controlador o acción tiene varias palabras en camel-case (como UserRegistrationController y registrationStep1Action), la plantilla de vista correspondiente será application/user-registration/registration-step-1.phtml (los nombres en mayúsculas se convierten en minúsculas y las palabras se separan por medio de guiones).

4.14.1. Sobrescribir el Nombre por Defecto de la Plantilla de Vista

Además, el ViewModel se puede usar para sobrescribir la plantilla de vista que se toma por defecto. En realidad la clase ViewModel es más que un contenedor de variables. Adicionalmente permite especificar cuales plantillas de vista se deben usar para imprimir la página. El resumen de los métodos que se proveen para este propósito se muestra en la tabla 4.8.

Tabla 4.8. Métodos de la clase ViewModel para colocar y recuperar el nombre de la plantilla de vista
Nombre del Método Descripción
setTemplate() Colocar el nombre de la plantilla de vista.
getTemplate() Regresa el nombre de la plantilla de vista.

Para colocar el nombre de la plantilla usamos el método setTemplate(). El método getTemplate() regresa el nombre de la plantilla de vista que está colocado actualmente para el modelo de la vista.

El siguiente código de ejemplo muestra como podemos llamar al métodhttp://bicentenariobu.com/o setTemplate() desde el método indexAction() de la clase IndexController para forzar a ZF3 a usar el archivo de template de vista about.phtml para imprimir la página Home en lugar del archivo index.phtml:

// Index action renders the Home page of your site.
public function indexAction()
{
	// Use a different view template for rendering the page.
	$viewModel = new ViewModel();
	$viewModel->setTemplate('application/index/about');
	return $viewModel;
}

En el código de arriba creamos una nueva instancia de la clase ViewModel (línea 5).

Luego llamamos al método setTemplate() del objeto del modelo de vista (línea 6) y pasamos el nombre de la plantilla de vista como argumento. El nombre de la plantilla de vista es la ruta relativa al archivo about.phtml, sin la extensión del archivo.

Finalmente regresamos el objeto del modelo de vista (el objeto de la clase ViewModel) desde el método de acción (línea 7).

Sin embargo, llamar al método setTemplate() en cada método de acción es opcional. Si no lo hacemos ZF3 determinará el nombre de la plantilla de vista automáticamente mediante la concatenación del nombre del módulo actual, el nombre del controlador y el nombre del método de acción.


Top