Spec-Zone.ru › Yii 2.0

Класс 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() правила кэшироваться во внутреннем кэше.

См. также:

  • getUrlFromCache()
  • setRuleToCache()
  • yii\web\UrlRule::getCreateUrlStatus()
protected boolean canBeCached ( yii\web\UrlRuleInterface $rule )
$rule yii\web\UrlRuleInterface
return boolean

true если результат должен быть кэширован, false если нет.

createAbsoluteUrl() public method

Создает абсолютный URL, используя заданный маршрут и параметры запроса.

Этот метод добавляет префикс к URL, созданному методом createUrl(), с помощью $hostInfo.

Обратите внимание, что в отличие от yii\helpers\Url::toRoute(), этот метод всегда обрабатывает заданный маршрут как абсолютный.

См. также createUrl().

public string createAbsoluteUrl ( $params, $scheme = null )
$params string|array

Используйте строку для представления маршрута (например, site/index), или массив для представления маршрута с параметрами запроса (например, ['site/index', 'param1' => 'value1']).

$scheme string|null

Схема для использования в URL (либо http, https или пустая строка для URL с относительным протоколом). Если не указано, будет использована схема текущего запроса.

return string

Созданный URL

createUrl() public method

Создает URL, используя заданный маршрут и параметры запроса.

Вы можете указать маршрут как строку, например, site/index. Также можно использовать массив, если вы хотите указать дополнительные параметры запроса для создаваемого URL. Формат массива должен быть:

// generates: /index.php?r=site%2Findex&param1=value1&param2=value2
['site/index', 'param1' => 'value1', 'param2' => 'value2']

Если вы хотите создать URL с якорем, вы можете использовать массив с параметром #. Например,

// generates: /index.php?r=site%2Findex&param1=value1#name
['site/index', 'param1' => 'value1', '#' => 'name']

Создаваемый URL является относительным. Используйте createAbsoluteUrl() для создания абсолютного URL.

Обратите внимание, что в отличие от yii\helpers\Url::toRoute(), этот метод всегда обрабатывает заданный маршрут как абсолютный.

public string createUrl ( $params )
$params string|array

Используйте строку для представления маршрута (например, site/index), или массив для представления маршрута с параметрами запроса (например, ['site/index', 'param1' => 'value1']).

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

Информация о хосте (например, http://www.example.com), которая используется методом createAbsoluteUrl() для добавления в создаваемые URL.

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

Маршрут (например, site/index).

$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 равен false. false возвращается, если текущий запрос не может быть успешно проанализирован.

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API