Класс yii\web\GroupUrlRule
| Наследование | yii\web\GroupUrlRule » yii\web\CompositeUrlRule » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\web\UrlRuleInterface |
| Доступна с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/web/GroupUrlRule.php |
GroupUrlRule представляет собой коллекцию правил URL, которые используют один и тот же префикс в своих шаблонах и маршрутах.
GroupUrlRule лучше всего использовать в модуле, который часто использует идентификатор модуля в качестве префикса для правил URL. Например, следующий код создаёт правило для модуля admin:
new GroupUrlRule([
'prefix' => 'admin',
'rules' => [
'login' => 'user/login',
'logout' => 'user/logout',
'dashboard' => 'default/dashboard',
],
]);
// the above rule is equivalent to the following three rules:
[
'admin/login' => 'admin/user/login',
'admin/logout' => 'admin/user/logout',
'admin/dashboard' => 'admin/default/dashboard',
]
В приведенном выше примере предполагается, что префикс для шаблонов и маршрутов одинаков. Их можно сделать разными, настроив $prefix и $routePrefix отдельно.
Использование GroupUrlRule более эффективно, чем непосредственное объявление отдельных правил, которые оно содержит. Это связано с тем, что GroupUrlRule может быстро определить, нужно ли обрабатывать запрос на разбор или создание URL, просто проверив, совпадает ли префикс.
Свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $createUrlStatus | null|целое число | Статус создания URL после последнего вызова createUrl(). | yii\web\CompositeUrlRule |
| $prefix | строка | Префикс для части шаблона каждого правила, объявленного в $rules. | yii\web\GroupUrlRule |
| $routePrefix | строка | Префикс для части маршрута каждого правила, объявленного в $rules. | yii\web\GroupUrlRule |
| $ruleConfig | массив | Настройка по умолчанию для правил URL. | yii\web\GroupUrlRule |
| $rules | массив | Правила, содержащиеся в этом составном правиле. | yii\web\GroupUrlRule |
Защищенные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $createStatus | целое число|null | Статус создания URL после последнего вызова createUrl(). | 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\web\GroupUrlRule |
| getCreateUrlStatus() | Возвращает статус создания URL после последнего вызова createUrl(). | yii\web\CompositeUrlRule |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\web\GroupUrlRule |
| parseRequest() | Разбирает заданный запрос и возвращает соответствующий маршрут и параметры. | yii\web\GroupUrlRule |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| createRules() | Создаёт правила URL, которые должны быть включены в это составное правило. | yii\web\GroupUrlRule |
| iterateRules() | Итерируется по указанным правилам и вызывает createUrl() для каждого из них. | yii\web\CompositeUrlRule |
Подробное описание свойств
$prefix общедоступное свойство
Префикс для части шаблона каждого правила, объявленного в $rules. Префикс и шаблон будут разделены слэшем.
public string $prefix = null
$routePrefix общедоступное свойство
Префикс для части маршрута каждого правила, объявленного в $rules. Префикс и маршрут будут разделены слэшем. Если это свойство не задано, оно примет значение свойства $prefix.
public string $routePrefix = null
$ruleConfig общедоступное свойство
Настройка по умолчанию для правил URL. Индивидуальные настройки правил, указанные через $rules, будут иметь приоритет при настройке одного и того же свойства правила.
public array $ruleConfig = ['class' => 'yii\web\UrlRule']
$rules общедоступное свойство
Правила, содержащиеся в этом составном правиле. См. yii\web\UrlManager::$rules для формата этого свойства.
См. также:
public array $rules = []
Подробное описание методов
createRules() защищенный метод
Создаёт правила URL, которые должны быть включены в составное правило.
| защищенный yii\web\UrlRuleInterface[] createRules ( ) | ||
|---|---|---|
| возвращает | yii\web\UrlRuleInterface[] |
Правила URL |
createUrl() публичный метод
Создаёт URL в соответствии с заданным маршрутом и параметрами.
| публичный string|boolean createUrl ( $manager, $route, $params ) | ||
|---|---|---|
| $manager | yii\web\UrlManager |
Менеджер URL |
| $route | string |
Маршрут. Не должен содержать слешей в начале или в конце. |
| $params | array |
Параметры |
| возвращает | string|boolean |
Созданный URL или false, если это правило не может быть использовано для создания этого URL. |
init() публичный метод
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта заданной конфигурацией.
| публичный void init ( ) |
|---|
parseRequest() публичный метод
Разбирает полученный запрос и возвращает соответствующий маршрут и параметры.
| публичный array|boolean parseRequest ( $manager, $request ) | ||
|---|---|---|
| $manager | yii\web\UrlManager |
Менеджер URL |
| $request | yii\web\Request |
Компонент запроса |
| возвращает | array|boolean |
Результат разбора. Маршрут и параметры возвращаются в виде массива. Если false, это означает, что данное правило не может быть использовано для разбора этого пути. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-web-groupurlrule.html