Zend_View-Controllers.xml 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <sect1 id="zend.view.controllers">
  2. <title>Controller Scripts</title>
  3. <para>
  4. De controller is waar je Zend_View instantieert en configureert.
  5. Je wijst dan variabelen aan de view toe en vertelt het view de
  6. output weer te geven door middel van een bepaald script.
  7. </para>
  8. <sect2 id="zend.view.controllers.assign">
  9. <title>Variabelen toewijzen</title>
  10. <para>
  11. Je controller script zou de nodige variabelen aan het view moeten
  12. toewijzen voordat het de controle aan het view script overhandigd.
  13. Normaal gesproken kan je toewijzingen één per één doen door
  14. waarden aan de eigenschappen van de view instantie toe te wijzen:
  15. </para>
  16. <programlisting role="php"><![CDATA[<?php
  17. $view = new Zend_View();
  18. $view->a = "Hooi";
  19. $view->b = "Bij";
  20. $view->c = "Zee";
  21. ?>]]>
  22. </programlisting>
  23. <para>
  24. Dit kan wel vervelend zijn als je reeds alle waarden die
  25. toegewezen moeten worden in een array of objekt voorhanden hebt.
  26. </para>
  27. <para>
  28. de assign() methode laat je "bulk" toewijzingen doen vanaf een array
  29. of objekt. De volgende voorbeelden hebben hetzelfde effekt als de
  30. hierboven beschreven één per één eigenschapstoewijzingen:
  31. </para>
  32. <programlisting role="php"><![CDATA[<?php
  33. $view = new Zend_View();
  34. // wij een array van key/waarde-paren toe, waar de key
  35. // de variabelnaam is, en de waarde de toegewezen waarde.
  36. $array = array(
  37. 'a' => "Hooi",
  38. 'b' => "Bij",
  39. 'c' => "Zee",
  40. );
  41. $view->assign($array);
  42. // doe hetzelfde met de publieke eigenschappen van een
  43. // objekt. Merk op hoe we naar een array casten bij de toewijzing.
  44. $obj = new StdClass;
  45. $obj->a = "Hooi";
  46. $obj->b = "Bij";
  47. $obj->c = "Zee";
  48. $view->assign((array) $obj);
  49. ?>]]>
  50. </programlisting>
  51. <para>
  52. Anderzijds kan je de toewijzingsmethode gebruiken om
  53. één per één toewijzingen te doen door een string
  54. variabelnaam door te geven, en dan de variabelwaarde.
  55. </para>
  56. <programlisting role="php"><![CDATA[<?php
  57. $view = new Zend_View();
  58. $view->assign('a', "Hooi");
  59. $view->assign('b', "Bij");
  60. $view->assign('c', "Zee");
  61. ?>]]>
  62. </programlisting>
  63. </sect2>
  64. <sect2 id="zend.view.controllers.render">
  65. <title>Een View Script weergeven</title>
  66. <para>
  67. Eenmaal je al de nodige variabelen hebt toegewezen zou de controller
  68. Zend_View moeten vertellen dat het een bepaald view script moet weergeven.
  69. Dat doe je door de render() methode op te roepen. Merk op dat de methide
  70. het weergegeven view zal terugsturen en niet afprinten. Je moet het dus zelf
  71. afprinten of echo-en wanneer dat jou past.
  72. </para>
  73. <programlisting role="php"><![CDATA[<?php
  74. $view = new Zend_View();
  75. $view->a = "Hooi";
  76. $view->b = "Bij";
  77. $view->c = "Zee";
  78. echo $view->render('eenView.php');
  79. ?>]]>
  80. </programlisting>
  81. </sect2>
  82. <sect2 id="zend.view.controllers.script-paths">
  83. <title>View Script Paden</title>
  84. <para>
  85. Standaard verwacht Zend_View dat je view scripts relatief zijn
  86. tenoverstaan van het aanroepende script. Bijvoorbeeld, als je controller
  87. script zich in "/map/naar/toepassing/controllers" bevindt en het roept
  88. $view->render('eenView.php') op, zal Zend_View naar
  89. "/map/naar/toepassing/controllers/eenView.php" zoeken.
  90. </para>
  91. <para>
  92. waarschijnlijk zijn je scripts ergens anders ondergebracht. Om
  93. Zend_View daarvan op de hoogte te brengen gebruik je de
  94. setScriptPath() methode.
  95. </para>
  96. <programlisting role="php"><![CDATA[<?php
  97. $view = new Zend_View();
  98. $view->setScriptPath('/map/naar/toepassing/views');
  99. ?>]]>
  100. </programlisting>
  101. <para>
  102. Als je nu $view->render('eenView.php') oproept zal het naar
  103. "/pad/naar/toepassing/views/eenView.php' kijken.
  104. </para>
  105. <para>
  106. In feite kan je paden "opstapelen" door de addScriptPath()
  107. methode te gebruiken. Terwijl je paden aan de stapel toevoegt
  108. zal Zend_View in het meest recente pad kijken voor het
  109. gevraagde view script. Dit laat je toe de standaard te overschrijven
  110. met verpersoonlijkte views zodat je persoonlijke "thema's" of "skins"
  111. voor sommige views kan maken terwijl die niet op andere views van
  112. toepassing zijn.
  113. </para>
  114. <programlisting role="php"><![CDATA[<?php
  115. $view = new Zend_View();
  116. $view->addScriptPath('/pad/naar/toepassing/views');
  117. $view->addScriptPath('/pad/naar/persoonlijk/');
  118. // wanneer je nu $view->render('boeklijst.php') oproept zal Zend_View
  119. // eerst kijken naar "pad/naar/persoonlijk/boeklijst.php", dan naar
  120. // "/pad/naar/toepassing/views/boeklijst.php", en uiteindelijk in
  121. // de huidige map naar "boeklijst.php".
  122. ?>]]>
  123. </programlisting>
  124. </sect2>
  125. </sect1>
  126. <!--
  127. vim:se ts=4 sw=4 et:
  128. -->