Объекты APPLICATION, CONTEXT, REQUEST, SERVER в D7
В Битрикс есть встроенные объекты которые могут быть очень полезны при разработке.
APPLICATION
Application
это базовая точка входа, через него мы обращаемся к глобальным методам ядра такие как, объект управляемого и тегированного кеша, соединение с базой данных и д.р., относящиеся к текущему сайту и от конкретного хита они не зависят. Application
не является изменяемой частью.
// подключаем приложение для обращения к глобальным сущностям ядра
use \Bitrix\Main\Application;
// возвращает новый экземпляр объекта кеша
$cache = Application::getCache();
// возвращает соединение с базой данных указанного имени, $name - название соединения. Если пустое - то соединение по умолчанию
$dbConnection = Application::getConnection($name);
// возвращает содержание текущего соединения
$context = Application::getContext();
// возвращает document root сервера (вместо $_SERVER["DOCUMENT_ROOT"])
$docRoot = Application::getDocumentRoot();
// возвращает путь к персональной директории (относительно document root)
$personalRoot = Application::getPersonalRoot();
// возвращает текущий экземпляр приложения
$instance = Application::getInstance();
// возвращает объект управляемого кеша
$managedCache = Application::getManagedCache();
// возвращает объект тегированного кеша
$taggedCache = Application::getTaggedCache();
// метод вернёт true если сервер работает в utf-8, если нет, то false
$utfVode = Application::isUtfMode();
CONTEXT
Context
объект, который создается при инициализации Application
, отвечающий за конкретный хит. Он содержит данные о запросе, серверные параметры, окружение 1С-Битрикса (id, язык сайта) являющийся изменяемой частью текущего ядра.
// подключаем приложение для обращения к глобальным сущностям ядра
use \Bitrix\Main\Application;
use \Bitrix\Main\Context;
// Получаем контекст текущего хита
$context = Application::getInstance()->getContext();
// или
$context = Context::getCurrent();
// get (получить)
// возвращает региональные культурные настройки для контекста
$culture = $context->getCulture();
// возвращает объект Request
$request = $context->getRequest();
// возвращает объект Server
$server = $context->getServer();
// возвращает объект отклика контекста
$responce = $contect->getResponce();
// возвращает ID текущего сайта ("s1")
$siteId = $context->getSite();
// возвращает ID текущего языка ("ru")
$langId = $context->getLanguage();
// set (установить)
// устанавливает региональные культурные настройки для контекста
$setCulture = $context->setCulture($culture);
// устанавливает язык контекста
$setLang = $context->setLanguage($langId);
// устанавливает ответ контента
$setResponce = $contect->setResponce($responce);
// устанавливает сайт для контекста
$setSiteId = $context->setSite($siteId);
REQUEST
Request
объект запроса от которого мы получаем данные такие как, протоколы, методы, пути URL, параметры и т.к.
// подключаем приложение для обращения к глобальным сущностям ядра
use \Bitrix\Main\Application,
\Bitrix\Main\Context,
\Bitrix\Main\Request;
// получаем контекст текущего хита
$context = Application::getInstance()->getContext();
// получаем объект Request
$request = $context->getRequest();
// или
$request = \Bitrix\Main\Context::getCurrent()->getRequest();
// получение параметра GET или POST
$value = $request->get();
// или
$value = $request["param"];
// параметры запроса
// получение GET-параметра
$value = $request->getQuery();
// получение списка GET-параметров
$values = $request->getQueryList();
// получение POST-параметра
$value = $request->getPost();
// получение списка POST-параметров
$values = $request->getPostList();
// получение загруженного файла
$value = $request->getFile();
// получение списка загруженных файлов
$values = $request->getFileList();
// получение значения кука
$value = $request->getCookie();
// получение списка кукисов
$values = $request->getCookieList();
// данные о запросе
// получение метода запроса
$method = $request->getRequestMethod();
// true - GET-запрос, иначе false
$flag = $request->isGet();
// true - POST-запрос, иначе false
$flag = $request->isPost();
// true - AJAX-запрос, иначе false
$flag = $request->isAjaxRequest();
// true - HTTPS-запрос, иначе false
$flag = $request->isHttps();
// данные о запрошенной странице
// true - находимся в админке, иначе false
$flag = $request->isAdminSection();
// запрошенный адрес (напр. "/catalog/category/?param=value")
$requestUri = $request->getRequestUri();
// запрошенная страница (напр. "/catalog/category/index.php")
$requestPage = $request->getRequestedPage();
// директория запрошенной страницы (напр. "/catalog/category")
$rDir = $request->getRequestedPageDirectory();
SERVER
Server
объект сервера с которого мы получаем данные из массива $_SERVER
, такие как заголовки, местоположение, пути скриптов и д.р.
// подключаем приложение для обращения к глобальным сущностям ядра
use \Bitrix\Main\Application,
\Bitrix\Main\Context,
\Bitrix\Main\Server;
// получаем объект Server
$server = $context->getServer();
// или
$server = Context::getCurrent()->getServer();
// DOCUMENT_ROOT
$server->getDocumentRoot();
// BX_PERSONAL_ROOT ("/bitrix")
$server->getPersonalRoot();
// HTTP_HOST
$server->getHttpHost();
// SERVER_NAME
$server->getServerName();
// SERVER_ADDR
$server->getServerAddr();
// SERVER_PORT
$server->getServerPort();
// REQUEST_URI
$server->getRequestUri();
// REQUEST_METHOD
$server->getRequestMethod();
// PHP_SELF
$server->getPhpSelf();
// SCRIPT_NAME
$server->getScriptName();
// любое значение из $_SERVER
$server->get('HTTP_ACCEPT');