Capítulo 23. Zend_View

Índice

23.1. Introdução
23.1.1. Script Controlador
23.1.2. Script Visualizador
23.2. Scripts Controladores
23.2.1. Atribuindo Variáveis
23.2.2. Renderizando um Script de Visualização
23.2.3. View Script Paths
23.3. Scripts de Visualização
23.3.1. Escapando a Saída
23.3.2. Sistemas de Template
23.4. Assistentes de Visualização (Modificadores)
23.4.1. Assistentes Padrão
23.4.2. Localizando os Assistentes
23.4.3. Escrevendo Assistentes Personalizados

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

23.1.1. 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::loadClass('Zend_View');
$view = new Zend_View();
$view->books = $data;

// renderize uma visualização chamada "booklist.php"
echo $view->render('booklist.php');
?>
        

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