Документация для разработчиков
Темная тема

UrlManager

UrlManager - класс-синглтон для построения ссылок на действия AJAX-контроллеров.

Метод Описание С версии
getInstance(
)
Возвращает экземпляр \Bitrix\Main\Engine\UrlManager.
getEndPoint(
	$absolute = false
)
Получение ссылки на endpoint, через который происходит обработка всех действий контроллеров. Параметры:
  • $absolute {bool} Если указать true, то будет возвращена абсолютная ссылка с учетом \Bitrix\Main\Engine\UrlManager::getHostUrl.

Пример:

/** @var \Bitrix\Main\Web\Uri $endpointUri **/
$endpointUri = \Bitrix\Main\Engine\UrlManager::getInstance()->getEndPoint();
echo $endpointUri;
// /bitrix/services/main/ajax.php

$endpointUri = \Bitrix\Main\Engine\UrlManager::getInstance()->getEndPoint(true);
echo $endpointUri;
// https://example.com/bitrix/services/main/ajax.php
getHostUrl(
)
Возвращает абсолютную ссылку на текущий хост с портом и схемой (http, https), с учетом настроек ядра.

Пример:

/** @var string $hostUrl **/
$hostUrl = \Bitrix\Main\Engine\UrlManager::getInstance()->getHostUrl();
echo $hostUrl;
// https://example.com
create(
	$action,
	$params = [],
	$absolute = false
): \Bitrix\Main\Web\Uri
Создает ссылку на конкретное действие. По умолчанию, добавляет SITE_ID, если он известен. Параметры:
  • $action {string} Полное имя действия. Например, disk.file.get.
  • $params {array} Массив параметров, которые будут добавлены в query string. Параметры при необходимости будут пропущены через функцию urlencode.
  • $absolute {bool} Если указать true, то будет возвращена абсолютная ссылка с учетом \Bitrix\Main\Engine\UrlManager::getHostUrl. По умолчанию false.

Пример:

/** @var \Bitrix\Main\Web\Uri $uri **/
$uri = \Bitrix\Main\Engine\UrlManager::getInstance()->create('someModule.someController.demoAction');
echo $uri;
// /bitrix/services/main/ajax.php?action=someModule.someController.demoAction

/** @var \Bitrix\Main\Web\Uri $uri **/
$uri = \Bitrix\Main\Engine\UrlManager::getInstance()->create('someModule.someController.demoAction', ['hello' => 'world']);
echo $uri;
// /bitrix/services/main/ajax.php?action=someModule.someController.demoAction&hello=world
createByController(
	Controller $controller, 
	$action, 
	$params = [],
	$absolute = false
): \Bitrix\Main\Web\Uri
Создает ссылку на действие внутри класса контроллера. При этом полный путь до контроллера будет рассчитан автоматически на основании экземпляра контроллера. Параметры:
  • $controller {Controller} Экземпляр \Bitrix\Main\Engine\Controller, для которого будет строиться ссылка.
  • $action {string} Имя действия, непосредственно внутри $controller. Например, get.
  • $params {array} Массив параметров, которые будут добавлены в query string. Параметры при необходимости будут пропущены через функцию urlencode.
  • $absolute {bool} Если указать true, то будет возвращена абсолютная ссылка с учетом \Bitrix\Main\Engine\UrlManager::getHostUrl. По умолчанию false.

Пример:

/** @var \Bitrix\Disk\Controller\File $controller */
$controller = new \Bitrix\Disk\Controller\File();
$uri = \Bitrix\Main\Engine\UrlManager::getInstance()->createByController($controller, 'get', ['id' => 100]);
echo $uri;
// /bitrix/services/main/ajax.php?action=disk.controller.file.get&id=100
createByComponentController(
	Controller $controller,
	$action,
	$params = [],
	$absolute = false
): \Bitrix\Main\Web\Uri
Создает ссылку на действие внутри класса контроллера компонента (в файле ajax.php). При этом полный путь до контроллера будет рассчитан автоматически на основании экземпляра компонента контроллера. Параметры:
  • $controller {Controller} Экземпляр \Bitrix\Main\Engine\Controller, для которого будет строиться ссылка. Внимание! Это контроллер, который располагается внутри компонента, в файле ajax.php.
  • $action {string} Имя действия, непосредственно внутри $controller. Например, showSpace.
  • $params {array} Массив параметров, которые будут добавлены в query string. Параметры при необходимости будут пропущены через функцию urlencode.
  • $absolute {bool} Если указать true, то будет возвращена абсолютная ссылка с учетом \Bitrix\Main\Engine\UrlManager::getHostUrl. По умолчанию false.

Пример

/** @var \SomeComponentController $controller */
$controller = new \SomeComponentController();
$uri = \Bitrix\Main\Engine\UrlManager::getInstance()->createByComponentController($controller, 'showSpace', ['number' => 42]);
echo $uri;
// /bitrix/services/main/ajax.php?c=bitrix:list.example&mode=ajax&action=showSpace&number=42
createByBitrixComponent(
	\CBitrixComponent $component, 
	$action,
	$params = array(),
	$absolute = false
): \Bitrix\Main\Web\Uri
Создает ссылку на действие внутри класса компонента. При этом полный путь будет рассчитан автоматически на основании экземпляра компонента. Параметры:
  • $component {\CBitrixComponent} Экземпляр \CBitrixComponent, для которого будет строиться ссылка.
  • $action {string} Имя действия, непосредственно внутри $controller. Например, get.
  • $params {array} Массив параметров, которые будут добавлены в query string. Параметры при необходимости будут пропущены через функцию urlencode.
  • $absolute {bool} Если указать true, то будет возвращена абсолютная ссылка с учетом \Bitrix\Main\Engine\UrlManager::getHostUrl. По умолчанию false.

Пример

/** @var \ListExampleComponent $component */
$component = new \ListExampleComponent();
$uri = \Bitrix\Main\Engine\UrlManager::getInstance()->createByBitrixComponent($component, 'get', ['id' => 40]);
echo $uri;
// /bitrix/services/main/ajax.php?c=bitrix:list.example&mode=class&action=get&id=40


© «Битрикс», 2001-2024, «1С-Битрикс», 2024