Zend_View-Introduction.xml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <sect1 id="zend.view.introduction">
  2. <title>Introdução</title>
  3. <para>
  4. 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.
  5. </para>
  6. <para>
  7. 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.
  8. </para>
  9. <para>
  10. Essencialmente, o funcionamento do Zend_View acontece em duas etapas principais:
  11. 1. Seu script controlador cria uma instância de Zend_View, atribuindo-lhe variáveis.
  12. 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.
  13. </para>
  14. <sect2 id="zend.view.introduction.controller">
  15. <title>Script Controlador</title>
  16. <para>
  17. 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:
  18. </para>
  19. <programlisting role="php"><![CDATA[<?php
  20. // use um modelo para obter dados sobre autores e títulos dos livros.
  21. $data = array(
  22. array(
  23. 'author' => 'Hernando de Soto',
  24. 'title' => 'The Mystery of Capitalism'
  25. ),
  26. array(
  27. 'author' => 'Henry Hazlitt',
  28. 'title' => 'Economics in One Lesson'
  29. ),
  30. array(
  31. 'author' => 'Milton Friedman',
  32. 'title' => 'Free to Choose'
  33. )
  34. );
  35. // atribua os dados à instância de Zend_View
  36. Zend_Loader::loadClass('Zend_View');
  37. $view = new Zend_View();
  38. $view->books = $data;
  39. // renderize uma visualização chamada "booklist.php"
  40. echo $view->render('booklist.php');
  41. ?>]]>
  42. </programlisting>
  43. </sect2>
  44. <sect2 id="zend.view.introduction.view">
  45. <title>Script Visualizador</title>
  46. <para>
  47. 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:
  48. </para>
  49. <programlisting role="php"><![CDATA[<?php if ($this->books): ?>
  50. <!-- Uma tabela contendo alguns livros. -->
  51. <table>
  52. <tr>
  53. <th>Autor</th>
  54. <th>Título</th>
  55. </tr>
  56. <?php foreach ($this->books as $key => $val): ?>
  57. <tr>
  58. <td><?php echo $this->escape($val['author']) ?></td>
  59. <td><?php echo $this->escape($val['title']) ?></td>
  60. </tr>
  61. <?php endforeach; ?>
  62. </table>
  63. <?php else: ?>
  64. <p>Não existem livros a serem exibidos.</p>
  65. <?php endif; ?>]]>
  66. </programlisting>
  67. <para>
  68. Observe a forma como empregamos o método "escape()" para escapar o conteúdo das variáveis para a saída.
  69. </para>
  70. </sect2>
  71. </sect1>
  72. <!--
  73. vim:se ts=4 sw=4 et:
  74. -->