Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Zhiznennyy Cikl Zaprosa: Руководство разработчика». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции.
—
title: Жизненный цикл запроса
—
Запросы в Bitrix Framework обрабатываются двумя основными способами: через роутинг или с помощью AJAX-контроллера.
Роутинг
Роутинг позволяет направлять входящие HTTP-запросы на соответствующие страницы или модули. Это достигается с помощью правил маршрутизации, которые определяют, какой код должен быть выполнен в ответ на конкретный URL.
AJAX-контроллер
AJAX-контроллер используется для обработки асинхронных запросов, что позволяет обновлять данные на странице без полной перезагрузки. Это достигается за счет отправки HTTP-запросов в фоновом режиме и получения ответов от сервера, которые затем используются для обновления части страницы.
Жизненный цикл страницы
После того как запрос направлен на конкретную страницу, начинается ее жизненный цикл. Страница в Bitrix Framework — это PHP-файл, который состоит из трех частей. Эти части помогают управлять подключениями, настройками и отображением контента в рамках одного запроса.
Структура страницы:
- header (пролог)
- workarea (тело страницы)
- footer (эпилог)
Пример страницы:
<?php require($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php'); ?>
#WORK_AREA#
<?php require($_SERVER['DOCUMENT_ROOT'].'/bitrix/footer.php'); ?>Если нужна страница без шаблона сайта (например AJAX-обработчик), то достаточно подключить только служебные части пролога и эпилога:
<?php require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php'); ?>
#WORK_AREA#
<?php require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_after.php'); ?>Пролог
Служебная часть пролога
Файл: /bitrix/modules/main/include/prolog_before.php
На этом этапе происходит подготовка к выполнению страницы. Система подключает необходимые для работы ядра файлы и устанавливает соединение с базой данных. Здесь также определяется текущий сайт и его настройки, инициализируются общие функции и обработчики событий.
Ключевые процессы инициализации в служебной части пролога:
1. Подключение служебных файлов с основными библиотеками (/lib/loader.php), автозагрузкой классов(/include/autoload.php) и глобальных функций (/tools.php).
2. Подключение /bitrix/php_interface/dbconn.php, объявление переменных для соединения с базой данных ($DBType, $DBDebug, $DBDebugToFile, $DBHost, $DBName, $DBLogin, $DBPassword), констант для отладки и прав доступа (/include/constants.php).
3. Соединение с базой данных ($DB), а также обработка ошибки соединения (/bitrix/php_interface/dbconn_error.php).
4. Подключение /bitrix/php_interface/after_connect.php для выполнения пользовательского кода сразу после установления соединения с базой данных.
5. Определение текущего сайта. На данном этапе определяется $APPLICATION, константы SITE_ID, LANGUAGE_ID, SITE_CHARSET, SITE_SERVER_NAME и другие. Если к этому моменту определена константа с кодом сайта SITE_ID, то сайт не будет определяться по текущей папке и доменному имени, а все остальные константы будут определены для этого сайта.
6. Подключение пользовательских обработчиков событий:\
/local/php_interface/ID сайта/init.php\
/local/bitrix/php_interface/init.php\
/bitrix/php_interface/ID сайта/init.php\
/bitrix/php_interface/init.php
7. Проверка и запуск агентов (CAgent::CheckAgents) и отправка почтовых событий (\Bitrix\Main\Mail\EventManager::checkEvents).
8. Открытие сессии. Объявление всех сессионных переменных ($_SESSION).
9. Выполнение события OnPageStart.
10. Авторизация пользователя. На этом этапе выполняется проверка и авторизация пользователя с последующем объявлением $USER.
11. Определение шаблона сайта (SITE_TEMPLATE_ID).
12. Выполнение события OnBeforeProlog.
13. Проверка прав доступа. В случае если прав недостаточно, выводится форма авторизации и страница завершает выполнение.
14. Начало буферизация вывода.
15. Выполнение события OnProlog.
Визуальная часть пролога
Файл: /bitrix/modules/main/include/prolog_after.php
На этом этапе подключается визуальная часть страницы, которая включает в себя элементы интерфейса, такие как шапка сайта. Это важно для создания единого стиля и структуры страницы, которые будут видны пользователю.
Основные процессы визуальной части пролога:
1. Проверка параметра «Закрытие публичной части» из настроек главного модуля.
2. Загрузка шаблона сайта (/bitrix/templates/ID шаблона сайта/header.php).
3. Отправка OnFileRewrite
Тело страницы
В этой части происходит основная работа с контентом, который отображается для пользователя. Это центральная часть страницы, где размещается HTML-код, PHP-скрипты и другие элементы, необходимые для отображения информации и взаимодействия с пользователем.
Здесь может происходить:
- отображение контента — вывод текстов, изображений, видео и других медиафайлов.
- взаимодействие с пользователем — формы для ввода данных, кнопки и другие элементы интерфейса.
- выполнение бизнес-логики — обработка данных, выполнение вычислений, взаимодействие с базой данных.
- подключение компонентов — использование готовых модулей и компонентов для добавления функциональности: каталоги товаров, новостные ленты и так далее.
Эпилог
Служебная часть эпилога
Файл: /bitrix/modules/main/include/epilog_after.php
На завершающем этапе происходит окончательная обработка страницы. Система завершает буферизацию и работу приложения. Это важно для завершения всех процессов и освобождения ресурсов.
Основные процессы служебной части эпилога:
1. Выполнение события OnEpilog.
2. Завершение буферизации страницы и выполнение OnEndBufferContent.
3. Выполнение события OnAfterEpilog.
4. Завершение работы приложения, в том числе закрытие соединения с базой данных (Main\Application::getInstance()->end() ).
Визуальная часть эпилога
Файл: /bitrix/modules/main/include/epilog_before.php
На этом этапе подключаются элементы, которые завершают визуальное оформление страницы, такие как подвал сайта. Это помогает завершить структуру страницы и добавить необходимые элементы интерфейса.
Основные процессы визуальной части эпилога:
1. Вызов функции CMain::ShowSpreadCookieHTML
2. Подключение /bitrix/templates/ID шаблона сайта/footer.php
💡 Экспертное мнение и рекомендации
Советы эксперта по интеграции:
- Всегда используйте кэширование при частых запросах к запросов, чтобы разгрузить базу данных.
- Соблюдайте стандарты PSR при написании обработчиков для «Zhiznennyy Cikl Zaprosa: Руководство разработчика».
- Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru