# Введение в Zend Framework и MVC

## Zend Framework

Zend Framework это открытый, объектно ориентированый фреймворк для PHP 5. Zend Framework часто называют "библиотекой компонентов" потому что он имеет много слабо связаных компонентов, которые вы можете использовать, в большей или меньшей степени, независимо. ZendFramework также предоставляет расширенную реализацию паттерна Модель-Вид-Контроллер (Model-View-Controller - MVC), который можно использовать для создания базовой структуры вашего приложения. Полный список компонентов ZendFramowork, вместе с кратким описанием, можно найти в обзоре компонентов. Этот QuickStart ознакомит вас с наиболее часто используемыми компонентами ZendFramework, включая `Zend_Controller`, `Zend_Layout`, `Zend_Config`, `Zend_Db`, `Zend_Db_Table`, `Zend_Registry`, а так же с несколькими помощниками вида(view helper).

Используя эти компоненты, мы за считанные минуты создадим простое приложение - гостевую книгу на основе базы данных. Полный исходный код этого приложения находиться в архивах:

- zip

- tar.gz

## Модель-Вид-Контроллер (Model-View-Controller)

Что же такое паттерн MVC, о котором все говорят, и почему он должен нас волновать? MVC - намного больше, чем просто трехбуквенный акроним(three-letter acronym - TLA), который вы могли бы время от времени упоминать, чтобы произвести впечатление. Он стал своего рода стандартом в проектировании современных веб-приложений, и на это есть веские основания - большая часть кода веб-приложений подпадает под одну из трех категорий: представление, бизнес логику или доступ к данным. Паттерн MVC хорошо моделирует разделение этих понятий. В результате, ваш код представления, бизнес логики и доступа к данным разделен и сгруппирован в разных частях вашего приложения. Многие разработчики считают такое четко определенное разделение необходимым для поддержания кода организованным, особенно при командной разработке.

### Дополнительная информация

Давайте разберем этот паттерн и посмотрим на его части:

- Model - Модель, это часть приложения, которая определяет его основную функциональность как множество абстракций. В модели можно определить процедуры доступа к данным и бизнес логику.

- View - Вид определяет, какое представление имеет информация, передаваемая пользователю. Обычно, контроллеры передают данные виду для отображения их в каком-либо формате. Кроме того, вид часто получает данные от пользователя. Это та часть паттерна, в которой, вероятнее всего, находится HTML разметка вашего MVC приложения.

- Controller - Контроллеры связывают весь паттерн в единое целое. Они управляют моделями, на основе пользовательского ввода и других факторов решают какой из видов отобразить, передают виду необходимые данные, или полностью передают управление другому контроллеру. Большинство MVC экспертов рекомендуют держать контроллеры как можно более "тонкими" (Вынося логику в модель и используя абстрактные интерфейсы)

Конечно, еще много может быть сказано про этот важный паттерн, но этого должно хватить в качестве предпосылки для понимания гостевой книги, которую мы будем создавать.