ertttert
Books-CMS.clan.su

Обслуживание запросов

Разумеется, полезно знать в общих чертах, что происходит, когда Drupal получает запрос; поэтому в данном разделе приводится краткий обзор на эту тему. Если вы хотите убедиться в этом самостоятельно, воспользуйтесь хорошим отладчиком и начните со страницы index.php — именно на ней Drupal получает основную часть запросов. Последовательность действий, описанная в этом разделе, может показаться слишком сложной для отображения простой веб-страницы, но зато она гибкая.

Роль веб-сервера

Drupal выполняется на веб-сервере, которым обычно является Apache. Если веб-сервер корректно обрабатывает файл .htaccess системы Drupal, то он инициализирует некоторые параметры PHP и анализирует URL. Почти все вызовы Drupal выполняются через страницу index.php. Например, обращение к http://example.com/foo/bar приводит к выполнению следующего процесса.

  1. Правило mod_rewrite в файле .htaccess системы Drupal просматривает входящий URL и разделяет его на базовый URL и путь. В нашем примере указан путь foo/bar.
  2. Этот путь присваивается параметру URL-запроса по имени q.
  3. В результате получается URL-адрес http://example.com/index.php?q=foo/bar.
  4. Drupal трактует foo/bar как внутренний путь Drupal, и обработка начинается с index.php.

В результате этого процесса Drupal трактует адреса http://example.com/index.php?q=foo/bar и http://example.com/foo/bar одинаково, поскольку в обоих случаях внутренний путь один и тот же. Это позволяет Drupal использовать URL без экзотических символов внутри. Такие URL-адреса называются чистыми.

При установке Drupal на веб-серверах других типов, таких как Microsoft IIS, чистые URL могут быть получены с помощью модуля ISAPI (Internet Server Application Programming Interface — интерфейс прикладного программирования Интернет-сервера) Windows, такого как ISAPI_Rewrite. Сервер IIS 7 и последующие его версии поддерживают перезапись непосредственно. Если сайт работает под управлением IIS 7 или более поздней версии, необходимо исключить файл web.config, который разрешает использование чистых URL и защищает от посторонних глаз файлы, которые лучше им не просматривать, например, .install, .module, .test, .theme, .profile, .info и .inc.

Процесс начальной загрузки

Drupal загружает себя при каждом запросе, проходя ряд этапов раскрутки. Эти этапы определены в файле bootstrap.inc и выполняются так, как описано в табл. 1.1.

Таблица 1.1. Процесс загрузки

Этап Назначение
Конфигурирование Задает глобальные переменные, которые используются в процессе загрузки
СУБД Инициализирует СУБД и регистрирует функции автозагрузки
Переменные Загружает системные переменные и все разрешенные модули раскрутки
Сеанс Инициализирует обработку сеансов
Заголовок страницы Вызывает метод hook_boot(), инициализирует систему блокировки и посылает стандартные HTTP-заголовки
Язык Инициализирует все определенные языковые типы
Завершение Последний этап: к этому моменту система Drupal полностью загружена. Здесь проверяются и исправляются входные данные

Конфигурирование Задает глобальные переменные, которые используются в процессе загрузки СУБД Инициализирует СУБД и регистрирует функции автозагрузки Переменные Загружает системные переменные и все разрешенные модули раскрутки Сеанс Инициализирует обработку сеансов Заголовок страницы Вызывает метод hook_boot(), инициализирует систему блокировки и посылает стандартные HTTP-заголовки Язык Инициализирует все определенные языковые типы Завершение Последний этап: к этому моменту система Drupal полностью загружена. Здесь проверяются и исправляются входные данные

Обработка запроса

Все действия по обработке и сбору данных, необходимых для удовлетворения запроса, выполняются функцией обратного вызова. Например, если получен запрос контента наподобие http://example.com/q=node/3, такой URL отображается на функцию node_page_view() в модуле node.module. При дальнейшей обработке данные для этой ноды извлекаются из базы и помещаются в структуру данных. После этого приходит время темизации.

Оформление данных

Темизация (theming, или оформление посредством выбранной темы) выполняет преобразование выбранных, измененных или созданных данных в формат HTML (либо XML или другой выходной формат). Drupal использует выбранную администратором тему для придания странице нужного внешнего вида. Затем результирующий вывод отправляется веб-браузеру (или другому HTTP-клиенту).

Всего комментариев: 0
Имя *:
Email *:
Код *:


Бесплатный конструктор сайтов - uCoz