Объект приложения и контекст
В Bitrix Framework приложение и контекст управляют обработкой веб-запросов. Эти концепции важны для работы с ядром системы и взаимодействия с данными.
Объект приложения
Приложение в Bitrix Framework инициализирует ядро и служит точкой входа. Оно предоставляет доступ к глобальным сущностям, таким как соединение с источниками данных и управляемый кэш. Приложение неизменно и не зависит от конкретного хита, то есть запроса к серверу.
-
Наследование. Каждое приложение наследует
Bitrix\Main\Application. Это позволяет создавать специализированные версии классов для различных типов запросов. Например,Bitrix\Main\HttpApplicationобрабатывает HTTP-хиты. -
Singleton. Приложение реализует шаблон Singleton, то есть создает только один экземпляр объекта в рамках одного запроса. Получить его можно так:
$application = Application::getInstance();
Контекст
Контекст связан с конкретным хитом и содержит запрос, ответ и серверные параметры. Он изменяется в зависимости от хита, что позволяет обрабатывать каждый запрос индивидуально.
-
Наследование. Контекст наследует
Bitrix\Main\Context. Это позволяет создавать специализированные контексты для различных типов запросов. Существуют классыBitrix\Main\HttpContextиBitrix\Main\CliContext.Bitrix\Main\HttpContextотвечает за HTTP-хиты.Bitrix\Main\CliContextиспользуется для обработки команд, выполняемых через командную строку (CLI). Он предоставляет доступ к параметрам и окружению, специфичным для CLI-запросов. -
Получение контекста. Чтобы получить контекст текущего хита, используйте:
$context = Application::getInstance()->getContext();
Если приложение — Bitrix\Main\HttpApplication, вызов вернет Bitrix\Main\HttpContext.
Запрос
Контекст включает в себя запрос, который представляет данные текущего хита. Запрос содержит информацию о параметрах запроса и методе его выполнения.
- Получение запроса. Чтобы получить запрос, выполните:
$context = Application::getInstance()->getContext();
$request = $context->getRequest();
- Класс запроса. Запрос — экземпляр класса, наследующего
Bitrix\Main\Request. Для HTTP-запросов этоBitrix\Main\HttpRequest, который предоставляет доступ к параметрам.
Доступ к параметрам
Запрос позволяет получить доступ к параметрам, переданным в ходе хита. Для доступа к параметрам GET или POST используйте:
$value = $request->get("some_name");
$value = $request["some_name"];
Запрос $value = $request["some_name"]; возвращает строку, прошедшую фильтры безопасности. Однако ее безопасность зависит от дальнейших действий.