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

    <?php
    // use um modelo para obter dados sobre autores e títulos dos livros.
    $data = array(
        array(
            'author' => '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:

    <?php if ($this->books): ?>

        <!-- Uma tabela contendo alguns livros. -->
        <table>
            <tr>
                <th>Autor</th>
                <th>Título</th>
            </tr>

            <?php foreach ($this->books as $key => $val): ?>
            <tr>
                <td><?php echo $this->escape($val['author']) ?></td>
                <td><?php echo $this->escape($val['title']) ?></td>
            </tr>
            <?php endforeach; ?>

        </table>

    <?php else: ?>

        <p>Não existem livros a serem exibidos.</p>

    <?php endif; ?>

Observe a forma como empregamos o método "escape()" para escapar o conteúdo das variáveis para a saída.