Application/Context в Bitrix D7 - Сергей Житников: Web-разработчик

Application/Context в Bitrix D7

Не забыть перед получением данных убедиться в подключении ядра Bitrix

Bitrix\Main\Application

Из документации: приложение — это объект, отвечающий за инициализацию ядра. Приложение является базовой точкой входа (маршрутизатором) для обращения к глобальным сущностям ядра: соединение с источниками данных, управляемый кеш и т.п. Также приложение содержит глобальные данные, которые относятся к самому сайту и не зависят от конкретного хита. То есть, приложение является неизменяемой частью, не зависящей от конкретного хита.

Получить объект приложения:

$application = Bitrix\Main\Application::getInstance();

Что может Bitrix\Main\Application

С помощью глобальной переменной $APPLICATION в Битрикс можно делать очень многое. Ниже перечислю возможности, которые позволяет реализовывать эта переменная (список постепенно будет дополняться).

Для хлебных крошек в случае, когда настройка компонента catalog «Включать раздел в цепочку навигации» не работает. Настройка позволяет добавлять в список любой текст (включая название раздела):

$APPLICATION->AddChainItem($arResult['NAME'], "/catalog/");

Bitrix\Main\Context

После инициации приложения создается объект, отвечающий за конкретный хит (связь с одним пользователем). Так называемый контекст. В контексте содержатся данные:

  • запрос текущего хита;
  • ответ текущему хиту;
  • серверные параметры текущего хита.

Все эти данные зависят от текущего хита и у каждого хита они разные. 

Для получения контекста текущего хита выполнить запрос:

$context = Bitrix\Main\Application::getInstance()->getContext();
$context = Bitrix\Main\Context::getCurrent(); //Краткая форма

Контекст содержит различную информацию. Ее можно получить:

//get
$culture  = $context->getCulture();   //возвращает региональные культурные настройки для контекста
$request  = $context->getRequest();   // возвращает объект Request
$server   = $context->getServer();    // возвращает объект Server
$responce = $contect->getResponce();  // возвращает объект отклика контекста
$siteId   = $context->getSite();      // возвращает ID текущего сайта ("s1")
$langId   = $context->getLanguage();  // возвращает ID текущего языка ("ru")

Или изменить:

// set
$setCulture  = $context->setCulture($culture);   // устанавливает региональные культурные настройки для контекста
$setLang     = $context->setLanguage($langId);   // устанавливает язык контекста
$setResponce = $contect->setResponce($responce); // устанавливает ответ контента
$setSiteId   = $context->setSite($siteId);       // устанавливает сайт для контекста

Bitrix\Main\Request

Позволяет получить данные о текущем запросе:

$request = Bitrix\Main\Application::getInstance()->getContext()->getRequest();

Получить параметры запроса:

$value = $request->get("param");       // получение параметра GET или POST
$value = $request["param"];            // получение параметра GET или POST
$value = $request->getQuery("param");  // получение GET-параметра
$values = $request->getQueryList();    // получение списка GET-параметров
$value = $request->getPost("param");   // получение POST-параметра
$values = $request->getPostList();     // получение списка POST-параметров (выдает объект, обращаться к которому через $values['postKey'])
$value = $request->getFile("param");   // получение загруженного файла
$values = $request->getFileList();     // получение списка загруженных файлов
$value = $request->getCookie("param"); // получение значения кука
$values = $request->getCookieList();   // получение списка кукисов
$request->getQueryList()->toArray();   // получение массива GET параметров
$request->getPostList()->toArray();    // получение массива POST параметров

Получить метод и протокол запроса:

$method = $request->getRequestMethod(); // получение метода запроса
$flag = $request->isGet();              // true - GET-запрос, иначе false
$flag = $request->isPost();             // true - POST-запрос, иначе false
$flag = $request->isAjaxRequest();      // true - AJAX-запрос, иначе false
$flag = $request->isHttps();            // true - HTTPS-запрос, иначе false

Получить данные о запрошенной странице:

$flag = $request->isAdminSection();            // true - находимся в админке, иначе false
$requestUri = $request->getRequestUri();       // Запрошенный адрес (напр. "/catalog/category/?param=value")
$requestPage = $request->getRequestedPage();   // Запрошенная страница (напр. "/catalog/category/index.php")
$rDir  = $request->getRequestedPageDirectory();// Директория запрошенной страницы (напр. "/catalog/category")

Bitrix\Main\Server

Позволяет получить информацию из суперглобального массива $_SERVER и некоторую другую информацию:

$server = $context->getServer();
$server = Bitrix\Main\Context::getCurrent()->getServer(); //Краткая форма
$server->getDocumentRoot(); // DOCUMENT_ROOT
$server->getPersonalRoot(); // BX_PERSONAL_ROOT ("/bitrix")
$server->getHttpHost();     // HTTP_HOST
$server->getServerName();   // SERVER_NAME
$server->getServerAddr();   // SERVER_ADDR
$server->getServerPort();   // SERVER_PORT
$server->getRequestUri();   // REQUEST_URI
$server->getRequestMethod();// REQUEST_METHOD
$server->getPhpSelf();      // PHP_SELF
$server->getScriptName();   // SCRIPT_NAME
$server->get('HTTP_ACCEPT');// Любое значение из $_SERVER
Сергей Житников
Об авторе

Сергей Житников - Веб-разработчик

Занимаюсь веб-разработкой более 5 лет. Специализируюсь на создании адаптивных сайтов и веб-приложений на HTML5, CSS3 и JavaScript. Работаю с популярными CMS и фреймворками, а также уделяю большое внимание оптимизации производительности и чистоте кода.

Есть проект или идея? Буду рад помочь!

Связаться со мной

Последние статьи

19.06.2026
В статье собрал шпаргалку по основным компонентам Bitrix: bitrix:menu, news.list, news.detail, sale.basket.basket.line, main.include и breadcrumb. Разобрал настройку меню из разделов и элементов инфоблока через файлы .menu_ext.php, показываю полные конфигурации компонентов с пояснениями ключевых параметров. Готовые примеры для быстрого копирования и использования в проектах.
19.06.2026
Купоны в Битрикс неразрывно связаны с правилами работы с корзиной — без привязки к правилу они не сработают, а правило без купонов применит скидку на все товары. Разбираю создание купонов через DiscountCouponTable::add(): обязательные и опциональные поля, типы купонов, флаги активности. Показываю примеры работы с датами через объект DateTime (прибавление дней, месяцев и минут).
19.06.2026
Разбираю готовые примеры работы с изображениями в PHP: сохранение на сервер, вывод в браузер, рисование линий и прямоугольников. Отдельно — нюансы с форматами файлов (JPEG/PNG) и поддержкой кириллицы через шрифты.