Yandex Metrika
sanches.free

HttpRequest в D7: единый фасад вместо сырых массивов $_GET и $_POST

Почему не лезть в суперглобалы напрямую

Тесты, консольные сценарии и фоновые задачи не всегда формируют полный набор $_SERVER/$_POST. Централизованный HttpRequest повторяет поведение ядра: префиксы cookie, нормализация URI и единая точка для политик безопасности.

Доступ к полям

  • get — обобщённый доступ по имени, аналог «как в $_REQUEST», но с учётом слоёв фреймворка.
  • getPost, getQuery — явное разделение источника.
  • getFile / getFileList — загрузки.
  • getCookie подставляет префикс из настроек главного модуля; getCookieRaw — без него.

JSON и служебные параметры

isJson сверяет заголовок Content-Type; decodeJson и getJsonList разбирают тело. getSystemParameters возвращает системные имена уровня login/logout, с которыми работает обвязка авторизации.

Пример: форма, JSON и метаданные запроса

use Bitrix\Main\Application;
use Bitrix\Main\Context;

$httpPulse = Application::getInstance()->getContext()->getRequest();

$alias = (string) $httpPulse->getPost('alias');
$token = (string) $httpPulse->getQuery('token');

if ($httpPulse->isJson()) {
    $httpPulse->decodeJson();
    $payload = $httpPulse->getJsonList()->get('items');
}

$remoteHost = $httpPulse->getHttpHost();
$usesTls = $httpPulse->isHttps();
$fromAdmin = $httpPulse->isAdminSection();
$isAjax = $httpPulse->isAjaxRequest();

$uriWithQuery = Context::getCurrent()->getServer()->getRequestUri();

Нюансы URI

getRequestedPage нормализует маршрут к index.php там, где это заложено в ядре; для ЧПУ сравнивайте с ожиданиями шаблона. getDecodedUri приводит путь к кодировке текущей локали — полезно при смешанных кириллических сегментах.

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии