Introdução
Zend_View é uma classe para trabalhar com a parte de visualização do padrão de projeto MVC. Basicamente ela existe para separar o script de visualização dos controladores e modelos. Ela fornece um sistema de assistentes, filtros de saída e escape de variáveis.
Zend_View é um sistema de template agnóstico; você pode usar o PHP como sua linguagem de template, ou criar instâncias de outros sistemas de template e manipulá-las dentro do seu script de visualização.
Essencialmente, o funcionamento do Zend_View acontece em duas etapas principais:
1. Seu script controlador cria uma instância de Zend_View, atribuindo-lhe variáveis.
2. O controlador instrui o Zend_View a rederizar uma determinada visualização , passando o controle ao script de visualização, responsável pela geração da saída a ser visualizada.
Script Controlador
Neste exemplo simples, suponhamos que seu controlador tenha uma listagem contendo dados sobre livros, que queremos renderizar para uma visualização. O controlador poderia ser algo como isto:
'Hernando de Soto',
'title' => 'The Mystery of Capitalism'
),
array(
'author' => 'Henry Hazlitt',
'title' => 'Economics in One Lesson'
),
array(
'author' => 'Milton Friedman',
'title' => 'Free to Choose'
)
);
// atribua os dados à instância de Zend_View
Zend_Loader::loadClass('Zend_View');
$view = new Zend_View();
$view->books = $data;
// renderize uma visualização chamada "booklist.php"
echo $view->render('booklist.php');
?>]]>
Script Visualizador
Agora necessitaremos do script de visualização associado, "booklist.php". Trata-se de um script PHP como qualquer outro, com uma exceção: ele executa dentro do escopo da instância de Zend_View instance, o que implica que as referências a $this apontam para as propriedades e métodos da instância Zend_View. (Variáveis atribuídas à instância pelo controlador são propriedades públicas da instância de Zend_View.) Deste modo, um script de visualição muito básico poderia se parecer com isto:
books): ?>
Autor
Título
books as $key => $val): ?>
escape($val['author']) ?>
escape($val['title']) ?>
Não existem livros a serem exibidos.
]]>
Observe a forma como empregamos o método "escape()" para escapar o conteúdo das variáveis para a saída.