Introdução ao Zend Framework

 Conhecendo o Zend Framework

appendix

 Referência do Zend Framework


  • Zend_Gdata
  • Zend_Http
  • Zend_InfoCard
  • Zend_Json
  • Zend_Layout
  • Zend_Ldap
  • Zend_Loader
  • Zend_Locale
  • Zend_Log
  • Zend_Mail
  • Zend_Markup
  • Zend_Measure
  • Zend_Memory
  • Zend_Mime
  • Zend_Navigation
  • Zend_Oauth
  • Zend_OpenId
  • Zend_Paginator
  • Zend_Pdf
  • Zend_ProgressBar
  • Zend_Queue
  • Zend_Reflection
  • Zend_Registry
  • Zend_Rest

  • Zend_Search_Lucene
  • Zend_Serializer
  • Zend_Server
  • Zend_Service
  • Zend_Session
  • Zend_Soap
  • Zend_Tag
  • Zend_Test
  • Zend_Text
  • Zend_TimeSync
  • Zend_Tool
  • Zend_Tool_Framework
  • Zend_Tool_Project
  • Zend_Translate
  • Zend_Uri
  • Zend_Validate
  • Zend_Version
  • Zend_View
  • Zend_Wildfire
  • Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 12.2% Update 2011-11-16 - Revision 24447 - Version ZF 1.11.x

    Capítulo 77. Zend_View

    Índice

    77.1. Introdução
    77.1.1. Script Controlador
    77.1.2. Script Visualizador
    77.1.3. Opções
    77.1.4. Tags Curtas em Scripts de Visualização
    77.1.5. Acessadores Utilitários
    77.2. Scripts Controladores
    77.2.1. Atribuindo Variáveis
    77.2.2. Renderizando um Script de Visualização
    77.2.3. Caminhos do Script de Visualização
    77.3. Scripts de Visualização
    77.3.1. Escapando a Saída
    77.3.2. Usando Sistemas de Template Alternativos
    77.3.2.1. Sistemas de Template Usando Scripts de Visualização
    77.3.2.2. Sistemas de Template Usando Zend_View_Interface
    77.4. Assistentes de Visualização
    77.4.1. Assistentes Padrão
    77.4.1.1. Action View Helper
    77.4.1.2. BaseUrl Helper
    77.4.1.3. Currency Helper
    77.4.1.4. Cycle Helper
    77.4.1.5. Partial Helper
    77.4.1.6. Placeholder Helper
    77.4.1.6.1. Concrete Placeholder Implementations
    77.4.1.7. Doctype Helper
    77.4.1.8. Gravatar View Helper
    77.4.1.8.1. Options
    77.4.1.9. HeadLink Helper
    77.4.1.10. HeadMeta Helper
    77.4.1.11. HeadScript Helper
    77.4.1.12. Assistente HeadStyle
    77.4.1.13. HeadTitle Helper
    77.4.1.14. HTML Object Helpers
    77.4.1.15. InlineScript Helper
    77.4.1.16. JSON Helper
    77.4.1.17. Navigation Helpers
    77.4.1.17.1. Translation of labels and titles
    77.4.1.17.2. Integration with ACL
    77.4.1.17.3. Navigation setup used in examples
    77.4.1.17.4. Breadcrumbs Helper
    77.4.1.17.5. Links Helper
    77.4.1.17.6. Menu Helper
    77.4.1.17.7. Sitemap Helper
    77.4.1.17.8. Navigation Helper
    77.4.1.18. TinySrc Helper
    77.4.1.18.1. Overview
    77.4.1.18.2. Quick Start
    77.4.1.18.3. Configuration Options
    77.4.1.18.4. Available Methods
    77.4.1.18.5. Examples
    77.4.1.19. Translate Helper
    77.4.1.20. UserAgent View Helper
    77.4.1.20.1. Overview
    77.4.1.20.2. Quick Start
    77.4.1.20.3. Available Methods
    77.4.2. Localizando os Assistentes
    77.4.3. Escrevendo Assistentes Personalizados
    77.4.4. Registering Concrete Helpers
    77.5. Zend_View_Abstract

    77.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 renderizar uma determinada visualização, passando o controle ao script de visualização, responsável pela geração da saída a ser visualizada.

    77.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:

    // use um modelo para obter os dados para autores e títulos de 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'
        
    )
    );

    // agora atribua os dados do livro a uma instância Zend_View
    Zend_Loader::loadClass('Zend_View');
    $view = new Zend_View();
    $view->books $data;

    // e renderize um script de visualização chamado "booklist.php"
    echo $view->render('booklist.php');

    77.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, 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 visualização muito básico poderia se parecer com isto:

     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.

    77.1.3. Opções

    Zend_View possui diversas opções que podem ser definidas para configurar o comportamento de seus scripts de visualização.

    • basePath: indica o caminho base na qual será definido os caminhos dos scripts, assistentes e filtros. Ele assume esta estrutura de diretórios:

      base/path/
          
      helpers/
          
      filters/
          
      scripts/

      Isto pode ser definido via setBasePath(), addBasePath() ou passar a opção basePath para o construtor.

    • encoding: indica a codificação de caracteres para usar com htmlentities(), htmlspecialchars(), e outras operações. O padrão é UTF-8. Pode ser definido através setEncoding() ou passar a opção encoding para o construtor.

    • escape: indica uma chamada de retorno para ser usada por escape(). Pode ser definido através setEscape() ou passar a opção escape para o construtor.

    • filter: indica um filtro para uso após a renderização de um script de visualização. Pode ser definido através setFilter(), addFilter() ou passar a opção filter para o construtor.

    • strictVars: força Zend_View para emitir avisos e alertas quando as variáveis de visualização ​​não inicializadas são acessadas. Pode ser definido chamando strictVars(true) ou passar a opção strictVars para o construtor.

    77.1.4. Tags Curtas em Scripts de Visualização

    Em nossos exemplos, fazemos uso das tags longas do PHP: <?php. Nós também favorecemos o uso da sintaxe alternativa para estruturas de controle. Estes são atalhos convenientes para usar quando escrevemos scripts de visualização, pois fazem as construções mais concisas, mantem as declarações sobre linhas simples e eliminam a necessidade de caçar os parênteses dentro de HTML.

    Em versões anteriores, muitas vezes recomendamos o uso de tags curtas (<? e <?=), que tornam os scripts de visualização um pouco menos prolixos. No entanto, o padrão para a configuração short_open_tag do php.ini é tipicamente off em hosts em produção ou compartilhados - tornando o seu uso não muito portátil. Se você usar template XML em scripts de visualização, tags curtas de abertura farão com que os templates falhem na validação. Finalmente, se você usar tags curtas quando short_open_tag está off, os scripts de visualização ou causarão erros ou simplesmente imprimirão o código PHP de volta para o visualizador.

    Se, apesar destas advertências, você deseja usar tags curtas, mas elas estão desativadas, você tem duas opções:

    • Ative as tags curtas em seu arquivo .htaccess:

      php_value "short_open_tag" "on"

      Isso só será possível se você tiver permissão para criar e utilizar arquivos .htaccess. Esta diretiva também podem ser adicionada ao seu arquivo httpd.conf.

    • Habilitar um stream wrapper opcional para converter tags curtas para tags longas em tempo real:

      $view->setUseStreamWrapper(true);

      Isso registra Zend_View_Stream como um stream wrapper para scripts de visualização, e garantirá que seu código continue trabalhando como se as tags curtas estivessem habilitadas.

    [Atenção] Stream Wrapper Prejudica o Desempenho

    O uso do stream wrapper irá prejudicar o desempenho de sua aplicação, embora benchmarks atuais estejam indisponíveis para quantificar o montante da degradação. Recomendamos que você ative as tags curtas, converta seus scripts para usar tags completas, ou tenha uma boa estratégia de cache completo e/ou parcial do conteúdo da página no lugar.

    77.1.5. Acessadores Utilitários

    Normalmente, você somente precisará invocar assign(), render(), ou um dos métodos para configurar/adicionar caminhos de filtro, ajudante e script. No entanto, se você desejar estender Zend_View você mesmo, ou ter acesso a alguns de seus internos, existe para isso alguns acessadores:

    • getVars() retornará todas as variáveis ​​atribuídas.

    • clearVars() limpará todas as variáveis ​​atribuídas; útil quando você quer reutilizar um objeto visualização, mas quer controlar quais variáveis ​​estão disponíveis.

    • getScriptPath($script) recuperará o caminho resolvido para um dado script de visualização.

    • getScriptPaths() recuperará todos os caminhos de script registrados.

    • getHelperPath($helper) recuperará o caminho resolvido para a classe assistente chamada.

    • getHelperPaths() recuperará os caminhos de todos os assistentes registrados.

    • getFilterPath($filter) recuperará o caminho resolvido para a classe filtro chamada.

    • getFilterPaths() recuperará os caminhos de todos os filtros registrados.

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...