Статьи

OSCON 2006: Понимание ZFramework

Джон Коггесхолл (John Coggeshall) — уважаемое имя в мире PHP, он работает техническим консультантом в Zend и предоставил быстрое введение в Zend Framework, существующее в настоящее время в предварительной версии.

Zend Framework (ZFramework для краткости) — это инициатива, направленная на создание стандартной структуры для разработки веб-приложений в чистой, структурированной манере с использованием объектно-ориентированных функций PHP5. Хотя он все еще находится в стадии разработки, есть относительно стабильные его части, которые сами по себе уже весьма полезны. Например, часть инфраструктуры, которая позволяет разработку приложений в стиле MVC, может использоваться сегодня.

Подход Model-View-Controller (MVC) к разработке веб-приложений разделяет приложение на три компонента: модель , которая предоставляет набор объектов, представляющих данные в основе приложения (обычно они соответствуют записям базы данных), представление , которое предоставляет шаблоны HTML для передачи содержимого и состояния приложения пользователю, и контроллер , который определяет, какое действие (действия) предпринять в ответ на каждый запрос, полученный от браузера.

Coggeshall продемонстрировал в коде простой механизм, используемый Zend Framework для реализации разработки в стиле MVC. Полностью без конфигурации, система требует, чтобы разработчик просто написал набор классов PHP с именами формы someControllerarticleControllersomeActioncreateActionupdateActiondeleteAction/article/delete/id/123

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

Coggeshall также продемонстрировал некоторые функциональные возможности, предоставляемые поисковой системой, встроенной в Zend Framework, которая основана на поисковой системе Apache Lucene , которая популярна в мире Java.

Есть еще несколько вещей, которые еще не встроены в фреймворк, где вы должны принести свои собственные решения. Например, для слоя представления вы можете использовать любую систему шаблонов, которую предпочитаете. Демонстрация Coggeshall использовала шаблонизатор Smarty , хотя более простые приложения могут использовать чистый PHP, встроенный в HTML, для вывода динамических значений.

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

В целом, презентация Коггесхолла была очень насыщенной информацией, но, возможно, слишком сложной для написания кода для непосвященных. Для более подробного ознакомления с Zend Framework я бы порекомендовал вступительную статью Криса Шифлетта на php | architect.