Класс yii\rest\UrlRule
| Наследование | yii\rest\UrlRule » yii\web\CompositeUrlRule » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\web\UrlRuleInterface |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/rest/UrlRule.php |
UrlRule предназначен для упрощения создания правил URL для поддержки RESTful API.
Самое простое использование UrlRule заключается в объявлении правила в конфигурации приложения, как показано ниже:
[
'class' => 'yii\rest\UrlRule',
'controller' => 'user',
]
Вышеуказанный код создаст целый набор правил URL, поддерживающих следующие конечные точки RESTful API:
-
'PUT,PATCH users/<id>' => 'user/update': обновление пользователя -
'DELETE users/<id>' => 'user/delete': удаление пользователя -
'GET,HEAD users/<id>' => 'user/view': вывод подробной информации/обзора/вариантов пользователя -
'POST users' => 'user/create': создание нового пользователя -
'GET,HEAD users' => 'user/index': вывод списка/обзора/вариантов пользователей -
'users/<id>' => 'user/options': обработка всех необработанных глаголов пользователя -
'users' => 'user/options': обработка всех необработанных глаголов коллекции пользователей
Вы можете настроить $only и/или $except, чтобы отключить некоторые из вышеуказанных правил. Вы можете настроить $patterns, чтобы полностью переопределить свой собственный список правил. Вы можете настроить $controller с несколькими идентификаторами контроллеров, чтобы сгенерировать правила для всех этих контроллеров. Например, следующий код отключит правило delete и сгенерирует правила для контроллеров user и post.
[
'class' => 'yii\rest\UrlRule',
'controller' => ['user', 'post'],
'except' => ['delete'],
]
Свойство $controller является обязательным и должно представлять один или несколько идентификаторов контроллеров. Каждый идентификатор контроллера должен быть префиксами идентификатором модуля, если контроллер находится в модуле. Идентификатор контроллера, используемый в шаблоне, будет автоматически приведен к множественному числу (например, user становится users, как показано в примерах выше).
Для получения более подробной информации и сведений об использовании UrlRule, см. статью руководства по маршрутизации REST.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $controller | строка|массив | Идентификатор контроллера (например, user, post-comment), с которым правила в этом составном правиле связаны. | yii\rest\UrlRule |
| $createUrlStatus | null|целое число | Статус создания URL после последнего вызова createUrl(). | yii\web\CompositeUrlRule |
| $except | массив | Список действий, которые следует исключить. | yii\rest\UrlRule |
| $extraPatterns | массив | Шаблоны для поддержки дополнительных действий помимо тех, что указаны в $patterns. | yii\rest\UrlRule |
| $only | массив | Список допустимых действий. | yii\rest\UrlRule |
| $patterns | массив | Список возможных шаблонов и соответствующих действий для создания правил URL. | yii\rest\UrlRule |
| $pluralize | boolean | Выполнять автоматическое склонение названий URL для контроллеров. | yii\rest\UrlRule |
| $prefix | строка | Общий префикс, используемый всеми шаблонами. | yii\rest\UrlRule |
| $ruleConfig | массив | Конфигурация по умолчанию для создания каждого правила URL, содержащегося в этом правиле. | yii\rest\UrlRule |
| $suffix | строка | Суффикс, который будет назначен yii\web\UrlRule::$suffix для каждого сгенерированного правила. | yii\rest\UrlRule |
| $tokens | массив | Список маркеров, которые следует заменить для каждого шаблона. | yii\rest\UrlRule |
Защищенные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $createStatus | целое число|null | Статус создания URL после последнего вызова createUrl(). | yii\web\CompositeUrlRule |
| $rules | yii\web\UrlRuleInterface[] | Правила URL, содержащиеся в этом составном правиле. | yii\web\CompositeUrlRule |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т. е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| createUrl() | Создает URL в соответствии с заданным маршрутом и параметрами. | yii\rest\UrlRule |
| getCreateUrlStatus() | Возвращает статус создания URL после последнего вызова createUrl(). | yii\web\CompositeUrlRule |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\rest\UrlRule |
| parseRequest() | Парсит заданный запрос и возвращает соответствующий маршрут и параметры. | yii\rest\UrlRule |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| createRule() | Создаёт правило URL с заданным шаблоном и действием. | yii\rest\UrlRule |
| createRules() | Создаёт правила URL, которые должны содержаться в этом составном правиле. | yii\rest\UrlRule |
| iterateRules() | Итерируется по указанным правилам и вызывает createUrl() для каждого из них. | yii\web\CompositeUrlRule |
Подробное описание свойств
$controller общедоступное свойство
Идентификатор контроллера (например, user, post-comment) для которого применяются правила в этом составном правиле. Он должен быть префиксён идентификатором модуля, если контроллер находится в модуле (например, admin/user).
По умолчанию идентификатор контроллера будет автоматически приведен к множественному числу, когда он используется в шаблонах создаваемых правил. Если вы хотите явно указать, как идентификатор контроллера должен отображаться в шаблонах, вы можете использовать массив, где ключ массива является идентификатором контроллера в шаблоне, а значение — фактическим идентификатором контроллера. Например, ['u' => 'user'].
Вы также можете передать несколько идентификаторов контроллеров в виде массива. В этом случае это составное правило сгенерирует применимые правила URL для КАЖДОГО указанного контроллера. Например, ['user', 'post'].
public string|array $controller = null
$except общедоступное свойство
Список действий, которые должны быть исключены. Любое действие, найденное в этом массиве, НЕ будет иметь созданных правил URL.
См. также $patterns.
public array $except = []
$extraPatterns общедоступное свойство
Шаблоны для поддержки дополнительных действий помимо тех, что указаны в $patterns. Ключи — это шаблоны, а значения — соответствующие идентификаторы действий. Эти дополнительные шаблоны будут иметь приоритет над $patterns.
public array $extraPatterns = []
$only общедоступное свойство
Список допустимых действий. Если не пусто, только действия в этом массиве будут иметь соответствующие правила URL.
См. также $patterns.
public array $only = []
$patterns общедоступное свойство
Список возможных шаблонов и соответствующих действий для создания правил URL. Ключи — это шаблоны, а значения — соответствующие действия. Формат шаблонов Verbs Pattern, где Verbs обозначает список HTTP-глаголов, разделённых запятыми (без пробелов). Если Verbs не указан, разрешены все глаголы. Pattern является необязательным. Он будет префиксён $prefix/$controller/, а токены в нём будут заменены на $tokens.
public array $patterns = ['PUT,PATCH {id}' => 'update', 'DELETE {id}' => 'delete', 'GET,HEAD {id}' => 'view', 'POST' => 'create', 'GET,HEAD' => 'index', '{id}' => 'options', '' => 'options']
$pluralize общедоступное свойство
Автоматически ли приводить названия контроллеров к множественному числу в именах URL. Если true, идентификатор контроллера будет отображаться во множественном числе в URL. Например, контроллер user будет отображаться как users в URL.
См. также $controller.
public boolean $pluralize = true
$prefix общедоступное свойство
Общий префикс, используемый всеми шаблонами.
public string $prefix = null
$ruleConfig общедоступное свойство
Настройки по умолчанию для создания каждого правила URL, содержащегося в этом правиле.
public array $ruleConfig = ['class' => 'yii\web\UrlRule']
$suffix общедоступное свойство
Суффикс, который будет назначен yii\web\UrlRule::$suffix для каждого сгенерированного правила.
public string $suffix = null
$tokens общедоступное свойство
Список токенов, которые должны быть заменены для каждого шаблона. Ключи — имена токенов, а значения — соответствующие замены.
См. также $patterns.
public array $tokens = ['{id}' => '<id:\\d[\\d,]*>']
Подробное описание методов
createRule() защищённый метод
Создаёт правило URL с заданным шаблоном и действием.
| protected yii\web\UrlRuleInterface createRule ( $pattern, $prefix, $action ) | ||
|---|---|---|
| $pattern | строка | |
| $prefix | строка | |
| $action | строка | |
createRules() защищённый метод
Создаёт правила URL, которые должны содержаться в этом составном правиле.
| protected yii\web\UrlRuleInterface[] createRules ( ) | ||
|---|---|---|
| return | yii\web\UrlRuleInterface[] |
Правила URL |
createUrl() общедоступный метод
Создаёт URL в соответствии с заданным маршрутом и параметрами.
| public строка|boolean createUrl ( $manager, $route, $params ) | ||
|---|---|---|
| $manager | yii\web\UrlManager |
Менеджер URL |
| $route | строка |
Маршрут. Он не должен иметь слешей в начале или в конце. |
| $params | массив |
Параметры |
| return | строка|boolean |
Созданный URL или false, если это правило не может быть использовано для создания этого URL. |
init() общедоступный метод
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта заданными настройками.
| public void init ( ) |
|---|
parseRequest() общедоступный метод
Разбирает заданный запрос и возвращает соответствующий маршрут и параметры.
| public массив|boolean parseRequest ( $manager, $request ) | ||
|---|---|---|
| $manager | yii\web\UrlManager |
Менеджер URL |
| $request | yii\web\Request |
Компонент запроса |
| return | массив|boolean |
Результат разбора. Маршрут и параметры возвращаются в виде массива. Если false, это означает, что это правило не может быть использовано для разбора этого пути. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-rest-urlrule.html