Capítulo 35. Zend_View

Índice

35.1. Introdução
35.1.1. Script Controlador
35.1.2. Script Visualizador
35.2. Scripts Controladores
35.2.1. Atribuindo Variáveis
35.2.2. Renderizando um Script de Visualização
35.2.3. View Script Paths
35.3. Scripts de Visualização
35.3.1. Escapando a Saída
35.3.2. Sistemas de Template
35.4. Assistentes de Visualização (Modificadores)
35.4.1. Assistentes Padrão
35.4.2. Localizando os Assistentes
35.4.3. Escrevendo Assistentes Personalizados

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

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

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

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