Spec-Zone.ru › Yii 2.0

Класс 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

Spec-Zone.ru

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