Не забыть перед получением данных убедиться в подключении ядра 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 и фреймворками, а также уделяю большое внимание оптимизации производительности и чистоте кода.
Есть проект или идея? Буду рад помочь!
Связаться со мной