Clase View

La clase View como mencionamos antes es una clase deribada de la clase abstracta layout y por lo tanto tendremos que instanciar a View. Es la que se encarga de mostrar en pantalla el resultado del proceso realizado por el sistema.
Tiene la particularidad que si no es creada antes de que se levante el adaptador solicitado, este ultimo creara una para poder renderizar sus resultados.
Si ya se creo una vista entonces el adaptador tomara la primera vista disponible del sistema.

Como mencionamos una caracteristica es que hereda de layout y otra no menos importante es que implementa la interface ArrayAccess, lo que nos otorga la facilidad de insertar atributos como si fuera un arreglo.
Ejemplo:
<?php
// Creamos la vista
$vista  = new \agenor\mva\view();

// Asignamos un valor a la vista mediante ArrayAcces
$vista['saludo']    = 'Buenos Dias';
// si estamos en un controlador hariamos
$this->_view['saludo']    = 'Buenos Dias';

// Por ultimo en el archivo PHTML
<?php echo $saludo?>

 RECORDAR :

Que cuando vimos las clases adaptadoras items 012, mencionamos las tres formas de pasar datos a una vista.

Metodos que nos proporciona la Clase View
El metodo mas importante de todos y quizas uno de a los que menos usaremos directamente aunque se ejecutara automaticamente es:
render(Array $datos = array(), boolean $capture = false) : mixed
El metodo render, visualiza una plantilla y generalmente es la ultima linea del adaptador el cual enviara a visualizar una determinada plantilla. Si este no lo hace el sistema renderiza la plantilla que cree debe ejecutar el sistema basandose en el nombre del adaptador y el nombre de la accion.
$datos : es un arreglo que contiene los datos que se deben sustituir en la plantilla. Recordar que es el metodo de pasaje de datos a traves de array directo.
$capture : establece si en vez de mostrar por pantalla, la plantilla es capturada en una variable y retornada. Por defecto se visualiza si se requiere capturar el contenido debera de establecer este parametro a true.

capture(Array $datos) : string
Capture es un metodo digamos que alias o abreviado de render para cuando se requiere realizar la captura de la plantilla y no la visualizacion, equivale a render cuando su propiedad capture esta configurada en true.
$datos : Es un arreglo al igual que el metodo render con los valores a sustituir en la plantilla.

setRenderView(boolean $render = true) : void
Configura si se mostrara o no la vista.
$render : true: la vista sera mostrada, false : la vista no sera mostrada.
Este sistema es util por ejemplo cuando necesitamos generar archivos excel, pdf etc que no podemos enviar nada de codigo del layout o vista.

getRender() : void
Nos retorna como dato si la vista ya fue (true) renderizada o por lo pronto todavia no se renderizo(false).

content(boolean $capture = false) : mixed
Este metodo es el que se debe poner en el layout.phtml del sitio para que se renderize la accion en ejecucion. Si no se pone este metodo entonces la vista no se mostrara.
$capture : Captura o no la vista, si es capturada se retornara un string.

renderPartial(array $datos, string $dirFileName, string $dirFileNameIdioms ='') : string
Hace un Renderizado de una Plantilla Cualquiera, no importando el modulo, adaptador o accion en ejecuccion y lo captura para retornarlo como string. A diferencia de los otros modos puede ser mas costoso si pues incluye nuevamente en cada llamada la plantilla. Utiles para bucles de renderizado de una misma plantilla.
$datos : datos a sustituir en la plantilla para mostrar.
$dirFileName :Nombre completo de la plantilla a renderizar incluyendo la ruta o path.
$dirFileNameIdioms : Identico al dirFileName pero para los datos de idioma. No esta implementada hasta la version 0.6.6.-

renderChange(string $action, string $adapter = '') : void
Cambia la vista que se mostrara en tiempo de ejecucion.
Recordar que el nombre de la plantilla de la vista se forma con nombreDeAdaptador, mas guion bajo, mas nombreDeAccion punto phtml.
$action : nombre de la accion que se mostrara.
$adapter : nombre del adaptador de vista en caso de omitirlo supone que es del adaptador en ejecucion.

url(string $modulos, string $adaptador, string $accion, array $params = array(), string $http = 'http://')
Es un envoltorio para el metodo buildUrl de la clase Request, que nos retornara la url deseada para el sistema de acuerdo a los parametros pasados.
$modulos : Modulo que se quiere enlazar.
$adaptador : Adaptador que se quiere enlazar.
$accion : accion que se quiere enlazar.
$params : parametros que se quieren pasar por la url del sistema.
$http : tipo de peticion comun o segura.

getUrlView(string $file = '') : string
Retorna la url hasta el directorio de vistas en uso si no se pasan parametros o retorna la url completa si se pasa el parametro file.
$file : Archivo del que se requiere la url completa.

error(string $error = 'error.phtml') : void
Este metodo nos renderiza la plantilla de error del sistema, es la que se encuentra en la clase layout del raiz.
$error : Nombre de la plantilla de error que se requiere levantar, en caso de no enviar ningun nombre de archivo se renderizara error.phtml.

Metodos de ayuda para codigo HTML5
La clase View tambien nos proporciona unos metodos que nos ayudan configurar y luego generar codigo HTML5, alguno de estos se pueden ejecutar tanto del adaptador como de la propia plantilla phtml del sitio. Son metodos muy relacionados a la clase Layout.

setCSS(string $urlAbsoluta, string $media = 'screen' ) : void
Configura que archivos de estilos .css se van a mostrar en nuestro sistema.
$urlAbsoluta : Url del archivo css que se desea mostrar.
$media : atributo media del css, por defecto es screen, se pueden utilizar all, aural, braille, embossed, handheld, print, projection, screen, tty, tv, estos son los media tipos y luego podremos inlcuir los mas complejos.
Con este metodo solo configuramos pero no se mostrara nada a menos que se usen los metodos getCSS desde el layout del sistema o desde el adaptador.
en el layout Hacemos:
<head>
    <title>Plantilla Ejemplo</title>
    <!-- METAS -->
    <meta charset="utf-8">
    <meta name="description" content="Agenor: Libreria MVC Basica.">
    <meta name="keywords" content="Agenor, MVC, Libreria" />
    <meta name="author" content="objetivophp@gmail.com">
    <?php echo $this->getCss(); ?>
    <!-- METAS FIN -->
</head>
Como vemos entonces la vista tiene un metodo getCss que retorna el codigo HTML para todos los archivos css que se configuraron con el metodo setCss.

Otro metodo que funciona de igual manera que set y get Css es para los archivos js.
setJs($urlAbsoluta) : void
$urlAbsoluta : url donde se encuentra el archivo js.
Tomar en cuenta los comentarios realizados para el metodos setCss.

Otro Metodo de ayuda HTML5
La vista tambien dispone de un metodo que proporciona ayuda para codigo HTML5, mas generico , para imagenes, audio, etc y es el metodo helper.
helper(string $helper) : Helper
$helper : Nombre de uno de los helpers que se pueden utilizar, debe pertenecer al sistema o ser un helper creado por el usuario.
Los helpers creados en el sistema son : Audio, Css, HighlighNum, Img, Input, Js, Label, Link, PhpCode, UrlBase, todos ellos los veremos mas adelante en la seccion Helpers. A partir de la version 0.7.3 tenemos la clase HTML5, con metodos estaticos que nos ayuda a levantar solo los helpers del sistema.