Мухи отдельно, визуализация отдельно
Статьи -> Программирование -> Web
Мухи отдельно, визуализация отдельно.
v:1.0 2009.09.12
Большинство средних и больших успешно действующих программных систем реализованы по принципу: логика отдельно, визуализация отдельно.
Т.е. получается как бы два уровня иерархии. На нижнем уровне - функции и классы, реализующие логику работы программы, например, создание объектов,
взаимодействие с внешними системами, работа с базой данных и т.д. На верхнем уровне реализуются программные модули, отвечающие за графическое представление
того, что делается на нижнем уровне. Реализация этой идеи может быть разная. Например, классы описывающие логику и расположены в одном пространстве имен,
визуализация в другом или функции логики в одном файле, а визуализации в другом или более сложные примеры, когда логика реализуется на промышленных
контроллерах, а визуализация на компьютерах. Конкретные технологии значения не имеют, суть в отделении одного от другого.
-
Такой подход имеет массу преимуществ:
- Упрощаются процессы коллективной разработки. В простейшем случае один реализует логику - другой визуализацию.
- Упрощаются процессы последующей поддержки и модернизации приложения. Т.к. системы состоит как минимум из двух модулей, управляться с ней становится на много проще. В крайнем случае, визуализацию или логику можно реализовать на другой технологии, сохранив только интерфейсы обмена.
Предлагаю вашему вниманию одно из таких средств разделения: шаблонизатор Smarty. Вот выдержка из Википедии.
Smarty - компилирующий обработчик шаблонов для PHP, один из инструментов, позволяющих отделить прикладную логику и данные от представления в духе концепции Model-view-controller.
Например, создаётся страница, которая показывает газетную статью. Название статьи, автор и сама статья - элементы, которые не содержат никакой информации о том, как они будут представлены. Их передают в Smarty из приложения, а верстальщик шаблона редактирует шаблоны и использует комбинацию тегов HTML и тегов шаблона, чтобы отформатировать представление этих элементов (таблицы HTML, фоновые цвета, размеры шрифта, стиля и т. д.). Однажды программист захочет изменить способ хранения статьи (сделать изменения в логике приложения). Это изменение не вызовет изменений в шаблонах. Содержание будет все еще передаваться в шаблон таким же самым способом. Аналогично, если верстальщик захочет полностью перепроектировать шаблоны, это не потребует никаких изменений в прикладной логике.
Одно из предназначений Smarty - это отделение логики приложения от представления. Конечно же, шаблоны могут содержать в себе логику, но лишь при условии, что эта логика необходима для правильного представления данных. Такие задачи, как подключение других шаблонов, чередующаяся окраска строчек в таблице, приведение букв к верхнему регистру, циклический проход по массиву для его отображения и т. д. - всё это является примером логики представления. Не следует думать, что Smarty заставляет разделять логику приложения и представление. Smarty не видит разницы между этими вещами, так что помещать или не помещать логику приложения в шаблоны - решать вам. В случае, если в шаблоне вообще не должно быть логики, можно ограничиться использованием чистого текста и переменных.
Одна из уникальных возможностей Smarty - компилирование шаблонов. Это означает, что Smarty читает файлы шаблонов и создаёт PHP-код на их основе. Код создаётся один раз и потом только выполняется. Поэтому нет необходимости обрабатывать файл шаблона для каждого запроса и каждый шаблон может пользоваться всеми преимуществами таких кэшируюших решений, как eAccelerator или PHP Accelerator.
Smarty очень хорошо решает поставленную задачу разделения логики и визуализации. Причем это решение очень простое и не требует каких-то глубоких знаний в программировании на PHP или чем-то еще. Базовая настройка этого шаблонизатора так же очень проста. Поэтому Smarty можно рекомендовать к применению в разработке больших, средних и дажие самых маленьких и простых сайтов. Более того Smarty распространяется бесплатно, а документация доступна на руссом языке.
В заключении остается только назвать официальный сайт шаблонизатора Smarty - http://smarty.net.
Петрелевич Сергей
petrelevich@yandex.ru
Внимание.
Комментировать могут только зарегистрированные пользователи.
Возможно использование следующих HTML тегов: <a>, <b>, <i>, <br>.