framework.zend.com
Stable релиз 2.0 / 1.12

Tutorial. Создание приложения на базе Zend Framework

[16.09.09] Уважаемые пользователи. К сожалению, туториал на данный момент содержит устаревшие части. Если вы хотите ознакомиться с актуальным подходом по созданию базового приложения рекомендуем прочесть официальный quickstart на английском языке.

Мне приходилось сталкиваться с мнением, что в мануале Zend Framework мало туториалов, в нем хорошо описаны отдельные классы, но, тяжело разобраться как их использовать вместе. Я попытаюсь восполнить этот недостаток, написав серию статей под названием "Построение приложения на базе Zend Framework".

Предположительно, серия будет иметь 4-ре части. В результате будет получено приложение затрагивающее все основные аспекты использования Zend Framework. Каждая часть будет сопровождаться полноценным кодом приложения, которое будет построено в рамках части. Код каждой последующей части будет включать код предыщей, с возможными модификациями.

Код тестируется на Zend Framework 1.7.2, php 5.2.6, mysql 5.0, apache 1.3,  и будет работать на версиях Zend Framework < 1.8. Для запуска кода на версиях старше 1.8, читайте ниже.

Сейчас вы можете ознакомиться со следующими частями туториала:

Часть 1. Базовая функциональность, реализация Model-View-Controller

  • Паттерн MVC - на основе Zend_Controller, Zend_View, Zend_Layout и Zend_Db
  • Управление конфигурационными файлами - Zend_Config
  • Работа с базой данных - Zend_Db, Zend_Db_Select, Zend_Db_Table
  • Отделение представления (вида) с помощью системы шаблонов - Zend_View
  • Двухэтапное представление - Zend_Layout
  • Управление маршрутами - Zend_Controller_Router_Rewrite
  • Автоматическая загрузка классов - Zend_Loader
  • Работа с исключениями и обработчик ошибок

Часть 2. Работа с Zend_Form, Zend_Captcha, Zend_Validate и другими компонентами

  • Работа с формами с помощью Zend_Form, включая работу с элементами формы, валидаторами, фильтрами, декораторами и визуальными группами;
  • Создание собственных элементов формы на примере электронной почты;
  • Создание валидаторов на примере валидатора пароля, валидатора совпадения двух строк и валидатора проверки отсутствия записи в базе;
  • Создание фильтров на примере фильтра, переводящего строку в транслит;
  • Создание декораторов на примере декоратора, интегрирующего javascript-календарь для выбора даты;
  • Использования компонента Zend_Captcha и элемента формы Zend_Form_Element_Captcha для защиты от спама;
  • Перевод ошибок формы с помощью Zend_Translate;
  • Вставка информации в базу данных;
  • Вывод сообщений с использованием помощника flashMessenger. Создание плагинов.

Особенности работы с Zend Framework 1.8.x#

Туториал написан для версий Zend Framework 1.5.х - 1.7.x. Но начиная с версии Zend Framework 1.8.0 появились компоненты Zend_Tool, Zend_Application, и Zend_Loader_Autoloader которые призваны облегчить и структурировать начальную загрузку приложения. Если вы запустите код туториала на Zend Framework >= 1.8.0 то можете увидеть следующую ошибку:

Notice: Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead

Чтобы этого избежать в файле Bootstrap.php замените:

require 'Zend/Loader.php';

на

require_once 'Zend/Loader/Autoloader.php';

а

Zend_Loader::registerAutoload();

на

$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setFallbackAutoloader(true);

Таким образом, мы настраиваем автозагрузчик загружать даже классы не имеющие общего префикса. Это необходимо, так как сейчас код примера не использует единых префиксов для ресурсов приложения (модели, формы). Это не лучшее решение, но пока это единственный вариант работы кода туториала на Zend Framework 1.8

В дальнейшем планируется провести обновление туториала для версии 1.8 с использованием новых компонентов, таких как Zend_Application.

Подробнее можно прочесть здесь http://framework.zend.com/manual/en/zend.loader.autoloader.html