|
|
@@ -0,0 +1,120 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!-- EN-Revision: 20106 -->
|
|
|
+<!-- Reviewed: no -->
|
|
|
+<sect1 id="learning.quickstart.intro">
|
|
|
+ <title>Введение в Zend Framework и MVC</title>
|
|
|
+
|
|
|
+ <sect2 id="learning.quickstart.intro.zf">
|
|
|
+ <title>Zend Framework</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Zend Framework это открытый, объектно ориентированый фреймворк для
|
|
|
+ <acronym>PHP</acronym> 5. Zend Framework часто называют "библиотекой компонентов"
|
|
|
+ потому что он имеет много слабо связаных компонентов, которые вы можете использовать,
|
|
|
+ в большей или меньшей степени, независимо. ZendFramework также предоставляет расширенную
|
|
|
+ реализацию паттерна Модель-Вид-Контроллер (Model-View-Controller -
|
|
|
+ <acronym>MVC</acronym>), который можно использовать для создания базовой структуры
|
|
|
+ вашего приложения. Полный список компонентов ZendFramowork, вместе с кратким описанием,
|
|
|
+ можно найти в
|
|
|
+ <ulink url="http://framework.zend.com/about/components">обзоре компонентов</ulink>.
|
|
|
+ Этот QuickStart ознакомит вас с наиболее часто используемыми компонентами ZendFramework,
|
|
|
+ включая <classname>Zend_Controller</classname>, <classname>Zend_Layout</classname>,
|
|
|
+ <classname>Zend_Config</classname>, <classname>Zend_Db</classname>,
|
|
|
+ <classname>Zend_Db_Table</classname>, <classname>Zend_Registry</classname>, а так же с
|
|
|
+ несколькими помощниками вида(view helper).
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Используя эти компоненты, мы за считанные минуты создадим простое приложение - гостевую
|
|
|
+ книгу на основе базы данных. Полный исходный код этого приложения находиться в архивах:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <ulink
|
|
|
+ url="http://framework.zend.com/demos/ZendFrameworkQuickstart.zip">zip</ulink>
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <ulink
|
|
|
+ url="http://framework.zend.com/demos/ZendFrameworkQuickstart.tar.gz">tar.gz
|
|
|
+ </ulink>
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
+ </sect2>
|
|
|
+
|
|
|
+ <sect2 id="learning.quickstart.intro.mvc">
|
|
|
+ <title>Модель-Вид-Контроллер (Model-View-Controller)</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Что же такое паттерн <acronym>MVC</acronym>, о котором все говорят, и почему он должен
|
|
|
+ нас волновать? <acronym>MVC</acronym> - намного больше, чем просто трехбуквенный
|
|
|
+ акроним(three-letter acronym - <acronym>TLA</acronym>), который вы могли бы время от
|
|
|
+ времени упоминать, чтобы произвести впечатление. Он стал своего рода стандартом в
|
|
|
+ проектировании современных веб-приложений, и на это есть веские основания - большая
|
|
|
+ часть кода веб-приложений подпадает под одну из трех категорий: представление, бизнес
|
|
|
+ логику или доступ к данным. Паттерн <acronym>MVC</acronym> хорошо моделирует разделение
|
|
|
+ этих понятий. В результате, ваш код представления, бизнес логики и доступа к данным
|
|
|
+ разделен и сгруппирован в разных частях вашего приложения. Многие разработчики считают
|
|
|
+ такое четко определенное разделение необходимым для поддержания кода организованным,
|
|
|
+ особенно при командной разработке.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <note>
|
|
|
+ <title>Дополнительная информация</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Давайте разберем этот паттерн и посмотрим на его части:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <inlinegraphic width="321" scale="100" align="center" valign="middle"
|
|
|
+ fileref="figures/learning.quickstart.intro.mvc.png" format="PNG" />
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>Model</emphasis> - Модель, это часть приложения, которая
|
|
|
+ определяет его основную функциональность как множество абстракций. В модели
|
|
|
+ можно определить процедуры доступа к данным и бизнес логику.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>View</emphasis> - Вид определяет, какое представление имеет
|
|
|
+ информация, передаваемая пользователю. Обычно, контроллеры передают данные
|
|
|
+ виду для отображения их в каком-либо формате. Кроме того, вид часто получает
|
|
|
+ данные от пользователя. Это та часть паттерна, в которой, вероятнее всего,
|
|
|
+ находится <acronym>HTML</acronym> разметка вашего <acronym>MVC</acronym>
|
|
|
+ приложения.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>Controller</emphasis> - Контроллеры связывают весь паттерн в
|
|
|
+ единое целое. Они управляют моделями, на основе пользовательского ввода и
|
|
|
+ других факторов решают какой из видов отобразить, передают виду
|
|
|
+ необходимые данные, или полностью передают управление другому контроллеру.
|
|
|
+ Большинство <acronym>MVC</acronym> экспертов рекомендуют <ulink
|
|
|
+ url="http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model">
|
|
|
+ держать контроллеры как можно более "тонкими"</ulink> (Вынося логику в
|
|
|
+ модель и используя абстрактные интерфейсы)
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Конечно, еще <ulink url="http://ootips.org/mvc-pattern.html">много может быть
|
|
|
+ сказано</ulink> про этот важный паттерн, но этого должно хватить в качестве
|
|
|
+ предпосылки для понимания гостевой книги, которую мы будем создавать.
|
|
|
+ </para>
|
|
|
+ </note>
|
|
|
+ </sect2>
|
|
|
+</sect1>
|