Zend_View-Introduction.xml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <sect1 id="zend.view.introduction">
  2. <title>Inleiding</title>
  3. <para>
  4. Zend_View is een klasse bestemd om met het "view" deel van
  5. het model-view-controller ontwerppatroon te werken. Meer bepaald
  6. bestaat het om het view script gescheiden te houden van het model
  7. en controller scripts. Het verstrekt een systeem van helpers,
  8. output filters en variabel escaping.
  9. </para>
  10. <para>
  11. Zend_View is template systeem agnostisch; je mag PHP als
  12. je template taal gebruiken of instanties van andere template
  13. systemen maken en ze binnenin je view script manipuleren.
  14. </para>
  15. <para>
  16. Zend_View gebruiken gebeurt hoofdzakelijk in twee hoofdstappen:
  17. 1. Jouw controller script maakt een instantie van
  18. Zend_View en kent er variabelen aan toe.
  19. 2. De controller vertelt Zend_View om een bepaald view weer te geven,
  20. hierdoor de controle aan het viewscript doorgevend, welke de view
  21. output genereert.
  22. </para>
  23. <sect2 id="zend.view.introduction.controller">
  24. <title>Controller Script</title>
  25. <para>
  26. Als een eenvoudig voorbeeld, laat ons zeggen dat je controller een
  27. lijst van boekdata heeft dat het door een view wil hebben weergegeven.
  28. Het controller script zou als volgt kunnen zijn:
  29. </para>
  30. <programlisting role="php"><![CDATA[<?php
  31. // gebruik een model om data voor auteurs en titels van boeken te verkrijgen
  32. $data = array(
  33. array(
  34. 'author' => 'Hernando de Soto',
  35. 'title' => 'The Mystery of Capitalism'
  36. ),
  37. array(
  38. 'author' => 'Henry Hazlitt',
  39. 'title' => 'Economics in One Lesson'
  40. ),
  41. array(
  42. 'author' => 'Milton Friedman',
  43. 'title' => 'Free to Choose'
  44. )
  45. );
  46. // ken nu de boekdata aan een instantie van een Zend_View toe
  47. Zend_Loader::loadClass('Zend_View');
  48. $view = new Zend_View();
  49. $view->books = $data;
  50. // en geef het view script genaamd "boeklijst.php" weer
  51. echo $view->render('boeklijst.php');
  52. ?>]]>
  53. </programlisting>
  54. </sect2>
  55. <sect2 id="zend.view.introduction.view">
  56. <title>View Script</title>
  57. <para>
  58. Nu hebben we het geassocieerde view script, "boeklijst.php" nodig.
  59. dit is een PHP script zoals alle andere, met één uitzondering: het
  60. voert zich uit binnenin de Zend_View instantie, wat betekent dat
  61. referenties naar $this naar de eigenschappen en methodes van de
  62. Zend_View instantie verwijzen. (Variabelen die aan de instantie
  63. werden toegwezen door de controller zijn publieke eigenschappen
  64. van de Zend_View instantie.) Zodoende zou een zeer eenvoudig
  65. script er als volgt kunnen uitzien:
  66. </para>
  67. <programlisting role="php"><![CDATA[<?php if ($this->books): ?>
  68. <!-- Een tabel van enige boeken. -->
  69. <table>
  70. <tr>
  71. <th>Auteur</th>
  72. <th>Titel</th>
  73. </tr>
  74. <?php foreach ($this->books as $key => $val): ?>
  75. <tr>
  76. <td><?php echo $this->escape($val['author']) ?></td>
  77. <td><?php echo $this->escape($val['title']) ?></td>
  78. </tr>
  79. <?php endforeach; ?>
  80. </table>
  81. <?php else: ?>
  82. <p>Er zijn geen boeken af te beelden.</p>
  83. <?php endif; ?>]]>
  84. </programlisting>
  85. <para>
  86. Merk op hoe we de "escape()" methode gebruiken om output
  87. escaping op de variabelen toe te passen.
  88. </para>
  89. </sect2>
  90. </sect1>
  91. <!--
  92. vim:se ts=4 sw=4 et:
  93. -->