quickstart-intro-mvc.xml 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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 и MVC</title>
  6. <sect2 id="learning.quickstart.intro.zf">
  7. <title>Zend Framework</title>
  8. <para>
  9. Zend Framework это открытый, объектно ориентированый фреймворк для
  10. <acronym>PHP</acronym> 5. Zend Framework часто называют "библиотекой компонентов"
  11. потому что он имеет много слабо связаных компонентов, которые вы можете использовать,
  12. в большей или меньшей степени, независимо. ZendFramework также предоставляет расширенную
  13. реализацию паттерна Модель-Вид-Контроллер (Model-View-Controller -
  14. <acronym>MVC</acronym>), который можно использовать для создания базовой структуры
  15. вашего приложения. Полный список компонентов ZendFramowork, вместе с кратким описанием,
  16. можно найти в
  17. <ulink url="http://framework.zend.com/about/components">обзоре компонентов</ulink>.
  18. Этот QuickStart ознакомит вас с наиболее часто используемыми компонентами ZendFramework,
  19. включая <classname>Zend_Controller</classname>, <classname>Zend_Layout</classname>,
  20. <classname>Zend_Config</classname>, <classname>Zend_Db</classname>,
  21. <classname>Zend_Db_Table</classname>, <classname>Zend_Registry</classname>, а так же с
  22. несколькими помощниками вида(view helper).
  23. </para>
  24. <para>
  25. Используя эти компоненты, мы за считанные минуты создадим простое приложение - гостевую
  26. книгу на основе базы данных. Полный исходный код этого приложения находиться в архивах:
  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
  39. </ulink>
  40. </para>
  41. </listitem>
  42. </itemizedlist>
  43. </sect2>
  44. <sect2 id="learning.quickstart.intro.mvc">
  45. <title>Модель-Вид-Контроллер (Model-View-Controller)</title>
  46. <para>
  47. Что же такое паттерн <acronym>MVC</acronym>, о котором все говорят, и почему он должен
  48. нас волновать? <acronym>MVC</acronym> - намного больше, чем просто трехбуквенный
  49. акроним(three-letter acronym - <acronym>TLA</acronym>), который вы могли бы время от
  50. времени упоминать, чтобы произвести впечатление. Он стал своего рода стандартом в
  51. проектировании современных веб-приложений, и на это есть веские основания - большая
  52. часть кода веб-приложений подпадает под одну из трех категорий: представление, бизнес
  53. логику или доступ к данным. Паттерн <acronym>MVC</acronym> хорошо моделирует разделение
  54. этих понятий. В результате, ваш код представления, бизнес логики и доступа к данным
  55. разделен и сгруппирован в разных частях вашего приложения. Многие разработчики считают
  56. такое четко определенное разделение необходимым для поддержания кода организованным,
  57. особенно при командной разработке.
  58. </para>
  59. <note>
  60. <title>Дополнительная информация</title>
  61. <para>
  62. Давайте разберем этот паттерн и посмотрим на его части:
  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>Model</emphasis> - Модель, это часть приложения, которая
  72. определяет его основную функциональность как множество абстракций. В модели
  73. можно определить процедуры доступа к данным и бизнес логику.
  74. </para>
  75. </listitem>
  76. <listitem>
  77. <para>
  78. <emphasis>View</emphasis> - Вид определяет, какое представление имеет
  79. информация, передаваемая пользователю. Обычно, контроллеры передают данные
  80. виду для отображения их в каком-либо формате. Кроме того, вид часто получает
  81. данные от пользователя. Это та часть паттерна, в которой, вероятнее всего,
  82. находится <acronym>HTML</acronym> разметка вашего <acronym>MVC</acronym>
  83. приложения.
  84. </para>
  85. </listitem>
  86. <listitem>
  87. <para>
  88. <emphasis>Controller</emphasis> - Контроллеры связывают весь паттерн в
  89. единое целое. Они управляют моделями, на основе пользовательского ввода и
  90. других факторов решают какой из видов отобразить, передают виду
  91. необходимые данные, или полностью передают управление другому контроллеру.
  92. Большинство <acronym>MVC</acronym> экспертов рекомендуют <ulink
  93. url="http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model">
  94. держать контроллеры как можно более "тонкими"</ulink> (Вынося логику в
  95. модель и используя абстрактные интерфейсы)
  96. </para>
  97. </listitem>
  98. </itemizedlist>
  99. <para>
  100. Конечно, еще <ulink url="http://ootips.org/mvc-pattern.html">много может быть
  101. сказано</ulink> про этот важный паттерн, но этого должно хватить в качестве
  102. предпосылки для понимания гостевой книги, которую мы будем создавать.
  103. </para>
  104. </note>
  105. </sect2>
  106. </sect1>