Профессиональное программирование на PHP

Страница 112 из 591


116 Глава 4 Реализация средствами РНР: шаблоны и Web

Реализация схемы MVC в Web-среде обычно осуществляется посредством шаблонов. В системе шаблонов HTML-теги и логика представления содержатся в шаблоне (template). Код приложения, который не содержит логики представления, осуществляет разбор запросов, выполняет необходимые операции, а затем передает неоформленные данные шаблону, чтобы последний отформатировал их для отображения.

Существует множество решений на основе шаблонов для РНР. В данной главе рассматривается система Smarty, одно из наиболее популярных и гибких решений. Также в данной главе показано, как реализовать специальное решение на основе шаблонов в том случае если Smarty не подходит.

Как чистый язык шаблонов Smarty прост. Однако по мере того как с его помощью начинает реализовываться управляющая логика, нестандартные функции и модификаторы, язык Smarty может оказаться весьма сложным. Любой дизайнер, который может реализовать сложную логику в Smarty, смог бы сделать то же самое и в РНР. И это не всегда плохо. РНР сам по себе является великолепным языком шаблонов, предоставляющим инструменты для простой интеграции форматирования и логики представления в HTML-код.

Если в коллектив входят дизайнеры, которые свободно работают в РНР, а вся команда (как дизайнеры, так и разработчики) поддерживают дисциплину, необходимую для отделения бизнес-логики от логики представления, то формальный язык шаблонов может оказаться излишним. Часто разработчики страдают от проблем интеграции с дизайнерскими коллективами, которые не могут разобраться с РНР-кодом, встроенным в созданные ими страницы. Smarty позволяет решить подобного рода организационные проблемы. Даже если команда дизайнеров свободно работает с РНР, решение на основе шаблонов все равно полезно, поскольку оно пытается усилить отделение отображения данных от управления приложением.

Кроме формального разделения между логикой представления и бизнес-логикой наилучшим обоснованием для использования решения на основе шаблонов, такого как Smarty, — предоставить неблагонадежным конечным пользователям возможность писать динамические страницы без необходимости доверять им доступ к РНР-коду. Подобная ситуация может возникнуть при поставке виртуальных магазинов, настраиваемых персональных страниц или поставке шаблонных решений для создания email-сообщений.

Smarty

Smarty — одна из наиболее популярных и широко внедряемых систем шаблонов для РНР. Язык Smarty был написан Монти Ортом (Monte Ohrt) и Андреем Змиевски (Andrei Zmievski) как быстрая и гибкая система шаблонов для поддержки отделения логики представления от логики приложения. Работа Smarty заключается в разборе специальной разметки в файлах шаблонов и ее преобразовании в кэшированный РНР-сценарий. Такое преобразование прозрачно и делает систему приемлемо быстрой.

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




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006