Объект приложения и контекст

В 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"]; возвращает строку, прошедшую фильтры безопасности. Однако ее безопасность зависит от дальнейших действий.