Класс yii\web\UrlManager
| Наследование | yii\web\UrlManager » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступна с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/web/UrlManager.php |
UrlManager обрабатывает парсинг HTTP-запросов и создание URL-адресов на основе набора правил.
UrlManager настраивается как компонент приложения в yii\base\Application по умолчанию. Вы можете получить доступ к этому экземпляру через Yii::$app->urlManager.
Вы можете изменить его конфигурацию, добавив массив в вашу конфигурацию приложения в components, как показано в следующем примере:
'urlManager' => [
'enablePrettyUrl' => true,
'rules' => [
// your rules go here
],
// ...
]
Правила — это классы, реализующие интерфейс yii\web\UrlRuleInterface, по умолчанию это yii\web\UrlRule. Для вложенных правил также есть класс yii\web\GroupUrlRule.
Для получения более подробной информации и использования UrlManager, см. статью руководства по маршрутизации.
Открытые свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $baseUrl | строка | Базовый URL, используемый createUrl() для добавления в создаваемые URL-адреса. | yii\web\UrlManager |
| $behaviors | yii\base\Behavior[] | Список поведений, присоединённых к этому компоненту | yii\base\Component |
| $cache | yii\caching\CacheInterface|строка | Объект кэша или идентификатор компонента приложения объекта кэша. | yii\web\UrlManager |
| $enablePrettyUrl | логическое значение | Включить красивые URL-адреса. | yii\web\UrlManager |
| $enableStrictParsing | логическое значение | Включить строгий парсинг. | yii\web\UrlManager |
| $hostInfo | строка | Информация о хосте (например, `http://www`. | yii\web\UrlManager |
| $normalizer | yii\web\UrlNormalizer|массив|строка|ложь | Конфигурация yii\web\UrlNormalizer, используемая этим UrlManager. | yii\web\UrlManager |
| $routeParam | строка | Имя параметра GET для маршрута. | yii\web\UrlManager |
| $ruleConfig | массив | Конфигурация по умолчанию правил URL. | yii\web\UrlManager |
| $rules | массив | Правила для создания и парсинга URL-адресов, когда $enablePrettyUrl равен true. | yii\web\UrlManager |
| $scriptUrl | строка | URL-адрес скрипта входа, используемый createUrl() для добавления в создаваемые URL-адреса. | yii\web\UrlManager |
| $showScriptName | логическое значение | Показывать имя скрипта входа в создаваемый URL-адрес. | yii\web\UrlManager |
| $suffix | строка | Суффикс URL-адреса, когда $enablePrettyUrl равен true. | yii\web\UrlManager |
Защищённые свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $cacheKey | строка | Ключ кэша для кэшированных правил | yii\web\UrlManager |
Открытые методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод, который не является методом класса. | yii\base\Component |
| __clone() | Этот метод вызывается после создания объекта путём клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства компонента. | yii\base\Component |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Component |
| __set() | Устанавливает значение свойства компонента. | yii\base\Component |
| __unset() | Устанавливает свойство компонента в значение null. | yii\base\Component |
| addRules() | Добавляет дополнительные правила URL. | yii\web\UrlManager |
| attachBehavior() | Прикрепляет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | yii\base\Component |
| behaviors() | Возвращает список поведений, по которым должен вести себя этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\base\Component |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Component |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| createAbsoluteUrl() | Создаёт абсолютный URL, используя указанный маршрут и параметры запроса. | yii\web\UrlManager |
| createUrl() | Создаёт URL, используя указанный маршрут и параметры запроса. | yii\web\UrlManager |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту. | yii\base\Component |
| getBaseUrl() | Возвращает базовый URL, используемый createUrl() для добавления в созданные URL. | yii\web\UrlManager |
| getBehavior() | Возвращает объект поведения с указанным именем. | yii\base\Component |
| getBehaviors() | Возвращает все поведения, прикреплённые к этому компоненту. | yii\base\Component |
| getHostInfo() | Возвращает информацию о хосте, используемую createAbsoluteUrl() для добавления в созданные URL. | yii\web\UrlManager |
| getScriptUrl() | Возвращает URL скрипта входа, используемый createUrl() для добавления в созданные URL. | yii\web\UrlManager |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчики события, прикреплённые к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для этого компонента. | yii\base\Component |
| init() | Инициализирует UrlManager. | yii\web\UrlManager |
| off() | Отсоединяет существующего обработчика события от этого компонента. | yii\base\Component |
| on() | Прикрепляет обработчик события к событию. | yii\base\Component |
| parseRequest() | Парсит запрос пользователя. | yii\web\UrlManager |
| setBaseUrl() | Устанавливает базовый URL, используемый createUrl() для добавления в созданные URL. | yii\web\UrlManager |
| setHostInfo() | Устанавливает информацию о хосте, используемую createAbsoluteUrl() для добавления в созданные URL. | yii\web\UrlManager |
| setScriptUrl() | Устанавливает URL скрипта входа, используемый createUrl() для добавления в созданные URL. | yii\web\UrlManager |
| trigger() | Вызывает событие. | yii\base\Component |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| buildRules() | Создаёт объекты правил URL из заданных объявлений правил. | yii\web\UrlManager |
| canBeCached() | Возвращает значение, указывающее, должен ли результат createUrl() правила кешироваться во внутреннем кэше. | yii\web\UrlManager |
| getUrlFromCache() | Получить URL из внутреннего кэша, если он существует. | yii\web\UrlManager |
| setRuleToCache() | Сохранить правило (например, yii\web\UrlRule) во внутреннем кэше. | yii\web\UrlManager |
Подробное описание свойств
$baseUrl открытое свойство
Базовый URL, используемый createUrl() для добавления в созданные URL.
public string getBaseUrl ( )
public void setBaseUrl ( $value )
$cache открытое свойство
Объект кэша или идентификатор компонента приложения объекта кэша. Компилированные правила URL будут кэшироваться через этот объект кэша, если он доступен.
После создания объекта UrlManager, если вы хотите изменить это свойство, вы должны присвоить ему только объект кэша. Установите это свойство в false если вы не хотите кешировать правила URL.
public yii\caching\CacheInterface|string $cache = 'cache'
$cacheKey защищённое свойство (доступно с версии 2.0.8)
Ключ кэша для кэшированных правил
protected string $cacheKey = __CLASS__
$enablePrettyUrl открытое свойство
Включить красивые URL. Вместо того, чтобы помещать все параметры в часть строки запроса URL, красивые URL позволяют использовать путь информации для представления некоторых параметров и, таким образом, могут создавать более удобные для пользователя URL, такие как "/news/Yii-is-released", вместо "/index.php?r=news%2Fview&id=100".
public boolean $enablePrettyUrl = false
$enableStrictParsing открытое свойство
Включить строгий разбор. Если строгий разбор включён, запрашиваемый URL должен соответствовать хотя бы одному из правил $rules, чтобы быть обработан как допустимый запрос. В противном случае, часть пути запроса будет обработана как запрашиваемый маршрут. Это свойство используется только когда $enablePrettyUrl равно true.
public boolean $enableStrictParsing = false
$hostInfo общественное свойство
Информация о хосте (например, http://www.example.com), используемая createAbsoluteUrl() для добавления в создаваемые URL-адреса.
public string getHostInfo ( )
public void setHostInfo ( $value )
$normalizer общественное свойство (доступно с версии 2.0.10)
Настройка yii\web\UrlNormalizer, используемая этим UrlManager. Значение по умолчанию false, что означает, что нормализация URL будет пропущена. Если вы хотите включить нормализацию URL, вы должны настроить это свойство вручную. Например:
[
'class' => 'yii\web\UrlNormalizer',
'collapseSlashes' => true,
'normalizeTrailingSlash' => true,
]
public yii\web\UrlNormalizer|array|string|false $normalizer = false
$routeParam общественное свойство
Имя параметра GET для маршрута. Это свойство используется только если $enablePrettyUrl false.
public string $routeParam = 'r'
$ruleConfig общественное свойство
Настройка правил URL по умолчанию. Индивидуальные настройки правил, указанные через $rules, будут иметь приоритет, когда одно и то же свойство правила настроено.
public array $ruleConfig = ['class' => 'yii\web\UrlRule']
$rules общественное свойство
Правила создания и анализа URL-адресов, когда $enablePrettyUrl true. Это свойство используется только если $enablePrettyUrl true. Каждый элемент массива — это массив настроек для создания одного правила URL. Настройки будут сначала объединены с $ruleConfig, прежде чем будут использоваться для создания объекта правила.
Можно использовать специальный сокращенный формат, если правило указывает только шаблон и маршрут: 'pattern' => 'route'. То есть, вместо использования массива конфигурации, можно использовать ключ для представления шаблона, а значение — соответствующего маршрута. Например, 'post/<id:\d+>' => 'post/view'.
Для RESTful маршрутизации указанный сокращенный формат также позволяет указать HTTP-глагол, для которого правило должно применяться. Можно сделать это, добавив его перед шаблоном, разделенным пробелом. Например, 'PUT post/<id:\d+>' => 'post/update'. Вы можете указать несколько глаголов, разделив их запятыми, например: 'POST,PUT post/index' => 'post/create'. Поддерживаемые глаголы в сокращенном формате: GET, HEAD, POST, PUT, PATCH и DELETE. Обратите внимание, что режим будет установлен в PARSING_ONLY при указании глагола таким образом, поэтому обычно вы не укажете глагол для обычного запроса GET.
Вот пример конфигурации для RESTful контроллера CRUD:
[
'dashboard' => 'site/index',
'POST <controller:[\w-]+>s' => '<controller>/create',
'<controller:[\w-]+>s' => '<controller>/index',
'PUT <controller:[\w-]+>/<id:\d+>' => '<controller>/update',
'DELETE <controller:[\w-]+>/<id:\d+>' => '<controller>/delete',
'<controller:[\w-]+>/<id:\d+>' => '<controller>/view',
];
Обратите внимание, что если вы измените это свойство после создания объекта UrlManager, убедитесь, что вы заполняете массив объектами правила, а не конфигурациями правил.
public array $rules = []
$scriptUrl общественное свойство
URL-адрес скрипта входа, используемый createUrl() для добавления в создаваемые URL-адреса.
public string getScriptUrl ( )
public void setScriptUrl ( $value )
$showScriptName общественное свойство
Показывать ли имя скрипта входа в созданном URL. По умолчанию true. Это свойство используется только если $enablePrettyUrl true.
public boolean $showScriptName = true
$suffix общественное свойство
Суффикс URL, используемый, когда $enablePrettyUrl true. Например, ".html" может быть использован, чтобы URL выглядел, как указывающий на статическую HTML-страницу. Это свойство используется только если $enablePrettyUrl true.
public string $suffix = null
Подробное описание методов
addRules() public method
Добавляет дополнительные правила URL.
Этот метод вызовет buildRules() для разбора заданных объявлений правил, а затем добавит или вставит их в существующие $rules.
Обратите внимание, что если $enablePrettyUrl равен false, этот метод ничего не сделает.
| public void addRules ( $rules, $append = true ) | ||
|---|---|---|
| $rules | array |
Новые правила для добавления. Каждый элемент массива представляет одно объявление правила. Обратитесь к $rules для допустимого формата правила. |
| $append | boolean |
Определяет, добавлять ли новые правила, добавляя их в конец существующих правил. |
buildRules() protected method
Создает объекты правил URL из заданных объявлений правил.
| protected yii\web\UrlRuleInterface[] buildRules ( $rules ) | ||
|---|---|---|
| $rules | array |
Объявления правил. Каждый элемент массива представляет одно объявление правила. Обратитесь к $rules для допустимых форматов правил. |
| return | yii\web\UrlRuleInterface[] |
Объекты правил, созданные из заданных объявлений правил |
| throws | yii\base\InvalidConfigException |
если объявление правила некорректно |
canBeCached() protected method (доступно с версии 2.0.12)
Возвращает значение, указывающее, должен ли результат createUrl() правила кэшироваться во внутреннем кэше.
См. также:
| protected boolean canBeCached ( yii\web\UrlRuleInterface $rule ) | ||
|---|---|---|
| $rule | yii\web\UrlRuleInterface | |
| return | boolean |
|
createAbsoluteUrl() public method
Создает абсолютный URL, используя заданный маршрут и параметры запроса.
Этот метод добавляет префикс к URL, созданному методом createUrl(), с помощью $hostInfo.
Обратите внимание, что в отличие от yii\helpers\Url::toRoute(), этот метод всегда обрабатывает заданный маршрут как абсолютный.
См. также createUrl().
| public string createAbsoluteUrl ( $params, $scheme = null ) | ||
|---|---|---|
| $params | string|array |
Используйте строку для представления маршрута (например, |
| $scheme | string|null |
Схема для использования в URL (либо |
| return | string |
Созданный URL |
createUrl() public method
Создает URL, используя заданный маршрут и параметры запроса.
Вы можете указать маршрут как строку, например, site/index. Также можно использовать массив, если вы хотите указать дополнительные параметры запроса для создаваемого URL. Формат массива должен быть:
// generates: /index.php?r=site%2Findex¶m1=value1¶m2=value2 ['site/index', 'param1' => 'value1', 'param2' => 'value2']
Если вы хотите создать URL с якорем, вы можете использовать массив с параметром #. Например,
// generates: /index.php?r=site%2Findex¶m1=value1#name ['site/index', 'param1' => 'value1', '#' => 'name']
Создаваемый URL является относительным. Используйте createAbsoluteUrl() для создания абсолютного URL.
Обратите внимание, что в отличие от yii\helpers\Url::toRoute(), этот метод всегда обрабатывает заданный маршрут как абсолютный.
| public string createUrl ( $params ) | ||
|---|---|---|
| $params | string|array |
Используйте строку для представления маршрута (например, |
| return | string |
Созданный URL |
getBaseUrl() public method
Возвращает базовый URL, который используется методом createUrl() для добавления в создаваемые URL.
По умолчанию он равен yii\web\Request::$baseUrl. Это используется в основном, когда $enablePrettyUrl равен true и $showScriptName равен false.
| public string getBaseUrl ( ) | ||
|---|---|---|
| return | string |
Базовый URL, который используется методом createUrl() для добавления в создаваемые URL. |
| throws | yii\base\InvalidConfigException |
если приложение запущено в консольном режиме и $baseUrl не настроен. |
getHostInfo() public method
Возвращает информацию о хосте, которая используется методом createAbsoluteUrl() для добавления в создаваемые URL.
| public string getHostInfo ( ) | ||
|---|---|---|
| return | string |
Информация о хосте (например, |
| throws | yii\base\InvalidConfigException |
если приложение запущено в консольном режиме и $hostInfo не настроен. |
getScriptUrl() public method
Возвращает URL скрипта входа, который используется методом createUrl() для добавления в создаваемые URL.
По умолчанию он равен yii\web\Request::$scriptUrl. Это используется в основном, когда $enablePrettyUrl равен false или $showScriptName равен true.
| public string getScriptUrl ( ) | ||
|---|---|---|
| return | string |
URL скрипта входа, который используется методом createUrl() для добавления в создаваемые URL. |
| throws | yii\base\InvalidConfigException |
если приложение запущено в консольном режиме и $scriptUrl не настроен. |
getUrlFromCache() protected method (доступно с версии 2.0.8)
Получение URL из внутреннего кэша, если он существует.
См. также createUrl().
| protected boolean|string getUrlFromCache ( $cacheKey, $route, $params ) | ||
|---|---|---|
| $cacheKey | string |
Сгенерированный ключ кэша для хранения данных. |
| $route | string |
Маршрут (например, |
| $params | array |
Параметры правила. |
| return | boolean|string |
Созданный URL |
init() public method
Инициализация UrlManager.
| public void init ( ) |
|---|
parseRequest() public method
Парсит пользовательский запрос.
| public array|boolean parseRequest ( $request ) | ||
|---|---|---|
| $request | yii\web\Request |
Компонент запроса |
| return | array|boolean |
Маршрут и связанные параметры. Последние всегда пустые, если $enablePrettyUrl равен |
setBaseUrl() public method
Устанавливает базовый URL, который используется createUrl() для добавления к создаваемым URL-адресам.
Это используется в основном, когда $enablePrettyUrl равен true и $showScriptName равен false.
| public void setBaseUrl ( $value ) | ||
|---|---|---|
| $value | string |
Базовый URL, который используется createUrl() для добавления к создаваемым URL-адресам. |
setHostInfo() public method
Устанавливает информацию о хосте, которая используется createAbsoluteUrl() для добавления к создаваемым URL-адресам.
| public void setHostInfo ( $value ) | ||
|---|---|---|
| $value | string |
Информация о хосте (например, "http://www.example.com"), которая используется createAbsoluteUrl() для добавления к создаваемым URL-адресам. |
setRuleToCache() protected method (доступно с версии 2.0.8)
Сохранить правило (например, yii\web\UrlRule) в кеше.
| protected void setRuleToCache ( $cacheKey, yii\web\UrlRuleInterface $rule ) | ||
|---|---|---|
| $cacheKey | ||
| $rule | yii\web\UrlRuleInterface | |
setScriptUrl() public method
Устанавливает URL скрипта входа, который используется createUrl() для добавления к создаваемым URL-адресам.
Это используется в основном, когда $enablePrettyUrl равен false или $showScriptName равен true.
| public void setScriptUrl ( $value ) | ||
|---|---|---|
| $value | string |
URL скрипта входа, который используется createUrl() для добавления к создаваемым URL-адресам. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-web-urlmanager.html