Взаимодействие с базами данных и Шаблоны веб-сайтов

В нашем приложении нам понадобится хранить данные нескольких типов, в том числе:

■ учетные записи пользователей;

■ настройки пользовательской среды:

■ данные, помещенные пользователями на сайт (записи блогов, изображе­ния, теги).

Для помещения данных в базу, их обновления и удаления будет использоваться уровень абстрактной базы данных. Таким образом, можно написать PHP-код так, чтобы он не зависел от конкретного сервера баз данных. Используется MySQL, но если вместо него вы захотите воспользоваться PostgreSQL, достаточно всего лишь изменить в приложении его настройки подключения к базе.

Для управления уровнем абстрактной базы данных мы привлечем класс Zend_DB библиотеки Zend Framework. Это, по сути, интерфейс к расширению PDO для РНР 5. Установка всего необходимого программного обеспечения.

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

Чтобы справиться с этой проблемой, мы отделим визуальную часть приложения от вычислительной. Это означает, что код, отвечающий за серьезные и сложные операции (обработку форм, чтение данных из базы, проверку уровня допуска поль­зователей), будет собран в одном месте, а конечный HTML-код, предназначенный для вывода сформированной страницы на экран пользователя, — помещен в файл шаблона.

Будет рассматриваться архитектура «модель представление-контрол­лер», или МПК (Model-View-Controller— MVC). Это архитектурный шаблон, специ­ально созданный для подобного разделения вычислительных операций и визуаль­ного представления. Для управления шаблонами будет использоваться система Smarty Template Engine ввиду ее широкой популярности и богатых, возможностей (она, собственно, и будет отвечать за реализацию части «П» — визуального пред­ставления).