Zend_View-Controllers.xml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <sect1 id="zend.view.controllers">
  2. <title>Scripts Controladores</title>
  3. <para>
  4. O controlador é onde você instancia e configura o Zend_View. Você atribui variáveis ao visualizador, instruindo-o a renderizar a saída usando um script particular.
  5. </para>
  6. <sect2 id="zend.view.controllers.assign">
  7. <title>Atribuindo Variáveis</title>
  8. <para>
  9. Seu script controlador deverá atribuir as variáveis necessárias ao visualizador antes de passar o controle para ele. Normalmente, você pode fazer isso atribuindo valores aos nomes de propriedades da instância do visualizador:
  10. </para>
  11. <programlisting role="php"><![CDATA[<?php
  12. $view = new Zend_View();
  13. $view->a = "Hay";
  14. $view->b = "Bee";
  15. $view->c = "Sea";
  16. ?>]]>
  17. </programlisting>
  18. <para>
  19. Porém, isto pode ser tedioso quando você coletar os valores a serem atribuídos a partir de um array ou objeto.
  20. </para>
  21. <para>
  22. O método assign() permite a atribuições a partir de um array ou objeto "a granel." O exemplo seguinte tem o mesmo efeito que o exemplo de atribuição de propriedades uma a uma.
  23. </para>
  24. <programlisting role="php"><![CDATA[<?php
  25. $view = new Zend_View();
  26. // Atribua um array associativo onde a chave é nome da variável
  27. // e o valor é proprio valor atribuído.
  28. $array = array(
  29. 'a' => "Hay",
  30. 'b' => "Bee",
  31. 'c' => "Sea",
  32. );
  33. $view->assign($array);
  34. // faça o mesmo com as propriedades públicas do objeto;
  35. // note a forma a conversão ao tipo array na atribuição.
  36. $obj = new StdClass;
  37. $obj->a = "Hay";
  38. $obj->b = "Bee";
  39. $obj->c = "Sea";
  40. $view->assign((array) $obj);
  41. ?>]]>
  42. </programlisting>
  43. <para>
  44. Alternativamente, você pode usar o método assign para fazer atribuições uma-a-uma passando a string contendo o nome da variável, e logo em seguida o valor a ser atribuído.
  45. </para>
  46. <programlisting role="php"><![CDATA[<?php
  47. $view = new Zend_View();
  48. $view->assign('a', "Hay");
  49. $view->assign('b', "Bee");
  50. $view->assign('c', "Sea");
  51. ?>]]>
  52. </programlisting>
  53. </sect2>
  54. <sect2 id="zend.view.controllers.render">
  55. <title>Renderizando um Script de Visualização</title>
  56. <para>
  57. Uma vez que tenhamos atribuído todas as variáveis necessárias, o controlador irá instruir o Zend_View a renderizar um script de visualização particular. Ele fará isso chamando o método render(). Note que o método irá retornar a visualização renderizada, mas não irá imprimí-la, ficando ao seu encargo fazê-lo (echo() ou print()) no momento apropriado.
  58. </para>
  59. <programlisting role="php"><![CDATA[<?php
  60. $view = new Zend_View();
  61. $view->a = "Hay";
  62. $view->b = "Bee";
  63. $view->c = "Sea";
  64. echo $view->render('someView.php');
  65. ?>]]>
  66. </programlisting>
  67. </sect2>
  68. <sect2 id="zend.view.controllers.script-paths">
  69. <title>View Script Paths</title>
  70. <para>
  71. Por padrão, Zend_View espera encontrar os scripts de visualização localizados no mesmo diretório onde reside o script controlador. Por exemplo, se o seu script controlador estiver em "/path/to/app/controllers" e chamar $view->render('someView.php'), Zend_View irá procurar por ele em "/path/to/app/controllers/someView.php".
  72. </para>
  73. <para>
  74. Obviamente, os seus scripts de visualização estarão provavelmente situados em outro lugar. Para informar ao Zend_View onde procurar pelos referidos scripts, use o método setScriptPath().
  75. </para>
  76. <programlisting role="php"><![CDATA[<?php
  77. $view = new Zend_View();
  78. $view->setScriptPath('/path/to/app/views');
  79. ?>]]>
  80. </programlisting>
  81. <para>
  82. Agora quando você chamar $view->render('someView.php'), ele irá procurar em "/path/to/app/views/someView.php".
  83. </para>
  84. <para>
  85. De fato, você pode "empilhar" caminhos usando o método addScriptPath(). A medida que você acrescenta caminhos à pilha, Zend_View irá procurar pela visão no caminho mais recentemente adicionado à pilha. Isto permite sobrepor visões padronizadas por visões customizadas, permitindo a criação de temas e peles para algumas visões, deixando outras intocadas.
  86. </para>
  87. <programlisting role="php"><![CDATA[<?php
  88. $view = new Zend_View();
  89. $view->addScriptPath('/path/to/app/views');
  90. $view->addScriptPath('/path/to/custom/');
  91. // agora quando você chamar $view->render('booklist.php'),
  92. // Zend_View procurará primeiro em "/path/to/custom/booklist.php",
  93. // depois em "/path/to/app/views/booklist.php", e finalmente no
  94. // diretório corrente, por "booklist.php".
  95. ?>]]>
  96. </programlisting>
  97. </sect2>
  98. </sect1>
  99. <!--
  100. vim:se ts=4 sw=4 et:
  101. -->