quickstart-intro-mvc.xml 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 19766 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="learning.quickstart.intro">
  5. <title>ZF &amp; MVC Einführung</title>
  6. <sect2 id="learning.quickstart.intro.zf">
  7. <title>Zend Framework</title>
  8. <para>
  9. Zend Framework ist ein Open Source, objektorientierter Web Anwendungs Framework für
  10. PHP5. ZF wird oft eine "Komponentenbibliothek" genannt, weil er viele lose verbundene
  11. Komponenten hat die man mehr oder weniger unabhängig verwenden kann. Aber Zend Framework
  12. bietet auch eine fortgeschrittene Model-View-Controller (MVC) Implementation die
  13. verwendet werden kann um eine Basisstruktur für eigene ZF Anwendungen zu sein. Eine
  14. komplette Liste der Komponenten des Zend Frameworks mit einer kurzen Beschreibung kann
  15. in der <ulink url="http://framework.zend.com/about/components">Komponenten
  16. Übersicht</ulink> gefunden werden. Dieser Schnellstart zeigt einige der am meisten
  17. verwendeten Komponenten vom ZF, inklusive <classname>Zend_Controller</classname>,
  18. <classname>Zend_Layout</classname>, <classname>Zend_Config</classname>,
  19. <classname>Zend_Db</classname>, <classname>Zend_Db_Table</classname>,
  20. <classname>Zend_Registry</classname>, zusammen mit ein paar View Helfern.
  21. </para>
  22. <para>
  23. Durch Verwendung dieser Komponenten bauen wir eine einfache Datenbank-gesteuerte
  24. Guest Book Anwendung in wenigen Minuten. Der komplette Quellcode für diese Anwendung ist
  25. in den folgenden Archiven vorhanden:
  26. </para>
  27. <itemizedlist>
  28. <listitem>
  29. <para>
  30. <ulink
  31. url="http://framework.zend.com/demos/ZendFrameworkQuickstart.zip">zip</ulink>
  32. </para>
  33. </listitem>
  34. <listitem>
  35. <para>
  36. <ulink
  37. url="http://framework.zend.com/demos/ZendFrameworkQuickstart.tar.gz">tar.gz</ulink>
  38. </para>
  39. </listitem>
  40. </itemizedlist>
  41. </sect2>
  42. <sect2 id="learning.quickstart.intro.mvc">
  43. <title>Model-View-Controller</title>
  44. <para>
  45. Was also ist dieses MVC Pattern über das alle Welt redet, und warum sollte es verwendet
  46. werden? MVC ist viel mehr als nur ein drei-wortiges Acronym (TLA) das man erwähnen kann
  47. wann immer man smart erscheinen will; es ist so etwas wie ein Standard bei der
  48. Erstellung von modernen Web Anwendungen. Und das aus gutem Grund. Der Code der meisten
  49. Web Anwendungen fällt in einer der folgenden drei Kategorien: Präsentation, Business
  50. Logik, und Datenzugriff. Das MVC Pattern modelliert diese Trennung bereits sehr gut. Das
  51. Endergebnis ist, das der Präsentationscode in einem Teil der Anwendung konsolidiert
  52. werden kann, die Business Logik in einem anderen Teil und der Code für den Datenzugriff
  53. wieder in einem anderen. Viele Entwickler finden diese gut definierte Trennung
  54. unentbehrlich um deren Code organisiert zu halten, speziell wenn mehr als ein Entwickler
  55. an der gleichen Anwendung arbeitet.
  56. </para>
  57. <note>
  58. <title>Mehr Informationen</title>
  59. <para>
  60. Brechen wir das Pattern auf und schauen wir uns die individuellen Teile an:
  61. </para>
  62. <para>
  63. <inlinegraphic width="321" scale="100" align="center" valign="middle"
  64. fileref="figures/learning.quickstart.intro.mvc.png" format="PNG" />
  65. </para>
  66. <itemizedlist>
  67. <listitem>
  68. <para>
  69. <emphasis role="strong">Modell</emphasis> - Dieser Teil der eigenen
  70. Anwendung definiert die grundsätzliche Funktionalität in einem Set von
  71. Abstraktionen. Datenzugriffs Routinen und etwas Business Logik kann im
  72. Model definiert sein.
  73. </para>
  74. </listitem>
  75. <listitem>
  76. <para>
  77. <emphasis role="strong">View</emphasis> - Views definieren was exakt dem
  78. Benutzer präsentiert wird. Normalerweise übergeben Controller Daten in jede
  79. View damit Sie in einem Format dargestellt werden. Views sammeln auch oft
  80. Daten vom Benutzer. Dort findet man üblicherweise HTML Markup in der eigenen
  81. Anwendung.
  82. </para>
  83. </listitem>
  84. <listitem>
  85. <para>
  86. <emphasis role="strong">Controller</emphasis> - Controller verbinden das
  87. komplette Pattern. Sie manipulieren Modelle, entscheiden welche View,
  88. basieren auf der Benutzeranfrage und anderen Faktoren, angezeigt werden soll
  89. übergeben die Daten welche jede View benötigt, oder übergeben die Kontrolle
  90. komplett an andere Controller. Die meisten MVC Experten empfehlen <ulink
  91. url="http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model">Controller
  92. so schlank wie möglich zu halten</ulink>.
  93. </para>
  94. </listitem>
  95. </itemizedlist>
  96. <para>
  97. Natürlich gibt es über dieses kritische Pattern <ulink
  98. url="http://ootips.org/mvc-pattern.html">mehr zu sagen</ulink>, aber das gesagte
  99. sollte genug Hintergrund vermitteln um die Guestbook Anwendung zu verstehen die wir
  100. bauen wollen.
  101. </para>
  102. </note>
  103. </sect2>
  104. </sect1>