<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- 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>
