Capítulo 14. Zend_View

Índice

14.1. Introdução
14.1.1. Script Controlador
14.1.2. Script Visualizador
14.2. Scripts Controladores
14.2.1. Atribuindo Variáveis
14.2.2. Renderizando um Script de Visualização
14.2.3. View Script Paths
14.3. Scripts de Visualização
14.3.1. Escapando a Saída
14.3.2. Sistemas de Template
14.4. Assistentes de Visualização (Modificadores)
14.4.1. Assistentes Padrão
14.4.2. Localizando os Assistentes
14.4.3. Escrevendo Assistentes Personalizados

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

14.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');
?>
        

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