Здравствуйте, пожалуй пора написать свою первую статью на блоге. С чего-же я начну? Я тоже задавался этим вопросом и знаете, понял только одно, что начинать всегда тяжело, но ведь надо! А начну я с введения в известный PHP фреймворк — Zend Framework
Основные понятия
Во-первых, нужно сразу-же четко и ясно понять, что-же такое фреймворк? Фреймворк — это термин, имеющий очень размытое значение, в программировании так називают какую-то простую концептуальную структуру, используемую для решения сложных задач. Проще говоря это набор исходных файлов, написанных на определённом языке программирования, которые позволяют решить множество сложных задач программирования. С фреймворком разобрались. Поехали дальше!
Во-вторых, надо разобраться что такое Zend Framework и для чего он нам нужен? Zend Framework — это высококачественный фреймворк, который является библиотекой с открытым исходным кодом для разработки веб-приложений и веб-сервисов на базе PHP. Он лёгкий в использовании и при этом даёт мощный функционал, что позволяет построить современные, гибкие и защищенные веб-сайты. Zend Framework даёт в руки профессионала широкие возможности для построения качественных веб-приложений.
Собстно сабж
Системные требования Zend Framework:
- PHP 5.1.4 или выше
- поддержка модуля mod_rewrite на сервере
Итак, приступим! Для начала скачайте сам фреймворк. Акуратненько положите его на уровень выше публичного каталога в папку «library» (предполагается, что Вы уже создали необходимый акаунт на Вашем локальном или удалённом сервере). Давайте сразу договоримся, что папка с Зендом будет называться «Zend». В итоге у Вас получится такая структура каталогов:
- web.site.name
| - library
| | + Zend
| |----
| + public_html
|----
Внимание! Следите за регистром в названиях каталогов: они должны быть такие-же как в Вашей PHP программе.
Далее нам нужно будет где-то разместить файлы нашего приложения. Назовём эту папку «application», положите папку в корень Вашего сайта (туда-же куда и «library») и сразу создайте в ней такие каталоги как:
«controllers» - здесь будут лежать контроллеры;
«models» - здесь будут лежать модели;
«views» - а здесь, скрипты вида;
Почему именно так? Дело в том, что данный фреймворк реализует множество паттернов программирования, одним из которых является паттерн MVC (Model-View-Controller).
Архитектура Модель-Вид-Контроллер очень ефективна для построения больших и сложных проектов, она чётко разделяет програмную часть сайта от его дизайна. Поверте на слово: обычный процедурный тип программирования не настолько удобен и ефективен, он не позволит Вам поддерживать громоздкую систему - проверено на личном опыте.

Схема архитектуры Модель-Вид-Контроллер
После всех подготовлений Вы должны получить следующую структуру каталогов:
- web.site.name
| - application
| | + controllers
| | + models
| | - views
| | + filters
| | + helpers
| | + scripts
| |----
| - library
| | + Zend
| |----
| + public_html
|----
В каталоге public_html создайте файл «.htaccess» со следующим содержимым:
Эти директивы заставят сервер «заворачивать» все запросы на файл index.php, где они будут обрабатываться фреймворком. Файлы с перечисленными расширениями будут отдаваться пользователю напрямую. Если Вы хотите в некоторых каталогах отключить mod_rewrite, чтобы сервер не «заворачивал» запросы, то Вам нужно в них поместить файл «.htaccess» со следующим содержимым:
RewriteEngine off
Теперь создадим файл начальной загрузки, где мы сконфигурируем и запустим Zend Framework. Пропишем програмный код для файла index.php
Заметьте, что я умышленно не вписал закрывающий код «?>». Это делается для того, чтобы не возникали сложные ошибки, которые связаны с редиректами с помощью функции header()
Теперь разберём по полочкам данный код. Следующие строчки указывают какие ошибки должны выводится интерпретатором и задаются региональные настройки.
Zend Framework расчитан на то, чтобы его файлы находились в include_path, поэтому в следующих строчках мы добавляем нужные директории.
Далее мы подключаем автозагрузчик классов Zend_Loader, который автоматически подключает вызванные классы. Для такой автоматики подключаемые классы дожны находиться в include_path.
Класс, который нам понадобится прежде всего, — первичный контроллер. При его работе, в свою очередь, используется специальный класс-роутер, чья задача состоит в нахождении по заданному URL функции отображения соответствующей веб-страницы. Потом мы сообщаем первичному котроллеру место нахождения других контроллеров:
P.S
Если Вы сейчас попытаетесь запустить наше приложение (открыв сайт в браузере), то Вы увидете сообщение о фатальной ошибке! Но не расстраивайтесь, мы просто еще не до конца сформировали наше приложение и потребуется еще кое-что сделать. Об этом я расскажу Вам в следующей статье, которая будет написана скоро… В это время я советую Вам почитать официальное руководство Zend Framework.


