quickstart-intro-mvc.xml 6.1 KB

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