Класс yii\base\Module
| Наследование | yii\base\Module » yii\di\ServiceLocator » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Подклассы | yii\base\Application, yii\console\Application, yii\debug\Module, yii\gii\Module, yii\web\Application |
| Доступен с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/base/Module.php |
Класс Module является базовым для модулей и приложений.
Модуль представляет собой подприложение, которое само по себе содержит элементы MVC, такие как модели, представления, контроллеры и т. д.
Модуль может состоять из подмодулей.
Компоненты могут быть зарегистрированы в модуле, чтобы они были глобально доступны внутри него.
Для получения более подробной информации и сведений об использовании модулей, см. статью руководства по модулям.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $aliases | массив | Список псевдонимов путей. | yii\base\Module |
| $basePath | строка | Основной каталог модуля. | yii\base\Module |
| $behaviors | yii\base\Behavior[] | Список поведений, прикрепленных к этому компоненту. | yii\base\Component |
| $components | массив | Список определений компонентов или загруженных экземпляров компонентов (ID => определение или экземпляр). | yii\di\ServiceLocator |
| $controllerMap | массив | Сопоставление идентификатора контроллера с конфигурацией контроллера. | yii\base\Module |
| $controllerNamespace | строка | Пространство имен, в котором находятся классы контроллеров. | yii\base\Module |
| $controllerPath | строка | Каталог, содержащий классы контроллеров. | yii\base\Module |
| $defaultRoute | строка | Маршрут по умолчанию для этого модуля. | yii\base\Module |
| $id | строка | Идентификатор, уникально определяющий этот модуль среди других модулей с тем же родительским модулем. | yii\base\Module |
| $layout | строка|булево | Макет, который должен применяться для представлений внутри этого модуля. | yii\base\Module |
| $layoutPath | строка | Основной каталог файлов макета. | yii\base\Module |
| $module | yii\base\Module | Родительский модуль этого модуля. | yii\base\Module |
| $modules | массив | Модули (индексированные по их идентификаторам). | yii\base\Module |
| $params | массив | Настраиваемые параметры модуля (имя => значение). | yii\base\Module |
| $uniqueId | строка | Уникальный идентификатор модуля. | yii\base\Module |
| $version | строка | Версия этого модуля. | yii\base\Module |
| $viewPath | строка | Основной каталог файлов представлений. | yii\base\Module |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Component |
| __clone() | Этот метод вызывается после создания объекта путем клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Module |
| __get() | Возвращает значение свойства компонента. | yii\base\Component |
| __isset() | Проверяет, установлено ли свойство, т. е. определено и не равно null. | yii\base\Component |
| __set() | Устанавливает значение свойства компонента. | yii\base\Component |
| __unset() | Устанавливает свойство компонента в null. | yii\base\Component |
| afterAction() | Этот метод вызывается сразу после выполнения действия в рамках данного модуля. | yii\base\Module |
| attachBehavior() | Присоединяет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| beforeAction() | Этот метод вызывается сразу перед выполнением действия в рамках данного модуля. | yii\base\Module |
| behaviors() | Возвращает список поведений, по которым должен вести себя этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Component |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Component |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| clear() | Удаляет компонент из локетера. | yii\di\ServiceLocator |
| createController() | Создает экземпляр контроллера на основе заданного маршрута. | yii\base\Module |
| createControllerByID() | Создает контроллер на основе заданного идентификатора контроллера. | yii\base\Module |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| get() | Возвращает экземпляр компонента с указанным идентификатором. | yii\di\ServiceLocator |
| getBasePath() | Возвращает корневой каталог модуля. | yii\base\Module |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все присоединенные к этому компоненту поведения. | yii\base\Component |
| getComponents() | Возвращает список определений компонентов или загруженных экземпляров компонентов. | yii\di\ServiceLocator |
| getControllerPath() | Возвращает каталог, содержащий классы контроллеров в соответствии с $controllerNamespace. | yii\base\Module |
| getInstance() | Возвращает текущий запрашиваемый экземпляр этого класса модуля. | yii\base\Module |
| getLayoutPath() | Возвращает каталог, содержащий файлы представления макета для этого модуля. | yii\base\Module |
| getModule() | Извлекает дочерний модуль с указанным идентификатором. | yii\base\Module |
| getModules() | Возвращает подмодули в этом модуле. | yii\base\Module |
| getUniqueId() | Возвращает идентификатор, уникально определяющий этот модуль среди всех модулей в текущем приложении. | yii\base\Module |
| getVersion() | Возвращает текущую версию модуля. | yii\base\Module |
| getViewPath() | Возвращает каталог, содержащий файлы представлений для этого модуля. | yii\base\Module |
| has() | Возвращает значение, указывающее, содержит ли локетер указанное определение компонента или создал экземпляр компонента. | yii\di\ServiceLocator |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли какой-либо обработчик, присоединенный к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Component |
| hasModule() | Проверяет, существует ли дочерний модуль с указанным идентификатором. | yii\base\Module |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для этого компонента. | yii\base\Component |
| init() | Инициализирует модуль. | yii\base\Module |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| runAction() | Выполняет действие контроллера, заданное маршрутом. | yii\base\Module |
| set() | Регистрирует определение компонента в этом локетере. | yii\di\ServiceLocator |
| setAliases() | Определяет псевдонимы путей. | yii\base\Module |
| setBasePath() | Устанавливает корневой каталог модуля. | yii\base\Module |
| setComponents() | Регистрирует набор определений компонентов в этом локетере. | yii\di\ServiceLocator |
| setInstance() | Устанавливает текущий запрашиваемый экземпляр этого класса модуля. | yii\base\Module |
| setLayoutPath() | Устанавливает каталог, содержащий файлы макетов. | yii\base\Module |
| setModule() | Добавляет подмодуль к этому модулю. | yii\base\Module |
| setModules() | Регистрирует подмодули в текущем модуле. | yii\base\Module |
| setVersion() | Устанавливает текущую версию модуля. | yii\base\Module |
| setViewPath() | Устанавливает директорию, содержащую файлы представлений. | yii\base\Module |
| trigger() | Вызывает событие. | yii\base\Component |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| defaultVersion() | Возвращает стандартную версию модуля. | yii\base\Module |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_AFTER_ACTION | yii\base\ActionEvent | Событие, возникающее после выполнения действия контроллера. | yii\base\Module |
| EVENT_BEFORE_ACTION | yii\base\ActionEvent | Событие, возникающее перед выполнением действия контроллера. | yii\base\Module |
Подробное описание свойств
$aliases общедоступное свойство, только для записи
Список псевдонимов путей, которые нужно определить. Ключи массива — имена псевдонимов (должны начинаться с @) и значения массива — соответствующие пути или псевдонимы. Например,
[
'@models' => '@app/models', // an existing alias
'@backend' => __DIR__ . '/../backend', // a directory
]
public void setAliases ( $aliases )
$basePath общедоступное свойство
Корневая директория модуля.
public string getBasePath ( )
public void setBasePath ( $path )
$controllerMap общедоступное свойство
Сопоставление идентификатора контроллера с конфигурациями контроллеров. Каждая пара «имя-значение» задаёт конфигурацию одного контроллера. Конфигурация контроллера может быть строкой или массивом. Если строкой, то строка должна быть полным квалифицированным именем класса контроллера. Если массивом, то массив должен содержать элемент class, который указывает полное квалифицированное имя класса контроллера, а остальные пары «имя-значение» в массиве используются для инициализации соответствующих свойств контроллера. Например,
[
'account' => 'app\controllers\UserController',
'article' => [
'class' => 'app\controllers\PostController',
'pageTitle' => 'something new',
],
]
public array $controllerMap = []
$controllerNamespace общедоступное свойство
Пространство имён, в котором находятся классы контроллеров. Это пространство имён будет использоваться для загрузки классов контроллеров, добавляя его к имени класса контроллера.
Если не задано, оно будет использовать подпространство controllers в пространстве имён этого модуля. Например, если пространство имён этого модуля — foo\bar, то пространство имён контроллеров по умолчанию будет foo\bar\controllers.
См. также раздел руководства по автозагрузке, чтобы узнать больше о определении пространств имён и о том, как загружаются классы.
public string $controllerNamespace = null
$controllerPath общедоступное свойство, только для чтения
Директория, содержащая классы контроллеров.
public string getControllerPath ( )
$defaultRoute общедоступное свойство
Маршрут по умолчанию этого модуля. По умолчанию default. Маршрут может состоять из идентификатора дочернего модуля, идентификатора контроллера и/или идентификатора действия. Например, help, post/create, admin/post/create. Если идентификатор действия не задан, он будет принимать значение по умолчанию, как указано в yii\base\Controller::$defaultAction.
public string $defaultRoute = 'default'
$id общедоступное свойство
Идентификатор, уникально определяющий этот модуль среди других модулей, имеющих того же родителя.
public string $id = null
$layout общедоступное свойство
Макет, который должен применяться для представлений в этом модуле. Это относится к имени представления, относительно $layoutPath. Если это не установлено, используется значение макета родительского модуля. Если это false, макет будет отключён в этом модуле.
public string|boolean $layout = null
$layoutPath общедоступное свойство
Корневая директория файлов макета. По умолчанию "$viewPath/layouts".
public string getLayoutPath ( )
public void setLayoutPath ( $path )
$module общедоступное свойство
Родительский модуль этого модуля. null если у этого модуля нет родителя.
public yii\base\Module $module = null
$modules общедоступное свойство
Модули (индексированные по их идентификаторам).
public array getModules ( $loadedOnly = false )
public void setModules ( $modules )
$params общедоступное свойство
Настраиваемые параметры модуля (имя => значение).
public array $params = []
$uniqueId общедоступное свойство, только для чтения
Уникальный идентификатор модуля.
public string getUniqueId ( )
$version общедоступное свойство
Версия этого модуля.
public string getVersion ( )
public void setVersion ( $version )
$viewPath общедоступное свойство
Корневая директория файлов представлений. По умолчанию "$basePath/views".
public string getViewPath ( )
public void setViewPath ( $path )
Подробное описание методов
__construct() public method
Конструктор.
| public void __construct ( $id, $parent = null, $config = [] ) | ||
|---|---|---|
| $id | string |
ID этого модуля. |
| $parent | yii\base\Module |
Родительский модуль (если есть). |
| $config | array |
Параметры в формате «имя-значение», которые будут использованы для инициализации свойств объекта. |
afterAction() public method
Этот метод вызывается сразу после выполнения действия в рамках этого модуля.
Метод вызовет событие EVENT_AFTER_ACTION. Значение возвращаемого методом результата будет использовано в качестве результата действия.
Если вы переопределяете этот метод, ваш код должен выглядеть следующим образом:
public function afterAction($action, $result)
{
$result = parent::afterAction($action, $result);
// your custom code here
return $result;
}
| public mixed afterAction ( $action, $result ) | ||
|---|---|---|
| $action | yii\base\Action |
Только что выполненное действие. |
| $result | mixed |
Результат возвращаемого действием значения. |
| return | mixed |
Обработанный результат действия. |
beforeAction() public method
Этот метод вызывается непосредственно перед выполнением действия в рамках этого модуля.
Метод вызовет событие EVENT_BEFORE_ACTION. Значение возвращаемого методом результата определит, должно ли действие продолжать выполняться.
В случае, если действие не должно выполняться, обработка запроса должна быть выполнена внутри кода beforeAction путём предоставления необходимого вывода или перенаправления запроса. В противном случае ответ будет пустым.
Если вы переопределяете этот метод, ваш код должен выглядеть следующим образом:
public function beforeAction($action)
{
if (!parent::beforeAction($action)) {
return false;
}
// your custom code here
return true; // or false to not run the action
}
| public boolean beforeAction ( $action ) | ||
|---|---|---|
| $action | yii\base\Action |
Действие, подлежащее выполнению. |
| return | boolean |
Должно ли действие продолжать выполняться? |
createController() public method
Создаёт экземпляр контроллера на основе заданного маршрута.
Маршрут должен быть относительным к этому модулю. Метод реализует следующий алгоритм для разрешения заданного маршрута:
- Если маршрут пуст, используйте $defaultRoute;
- Если первый сегмент маршрута является допустимым идентификатором модуля, как указано в $modules, вызовите метод
createController()с оставшейся частью маршрута; - Если первый сегмент маршрута найден в $controllerMap, создайте контроллер на основе соответствующей конфигурации, найденной в $controllerMap;
- Заданный маршрут имеет формат
abc/def/xyz. Попробуйте классabc\DefControllerилиabc\def\XyzControllerв пространстве имён контроллера $controllerNamespace.
Если любой из вышеперечисленных шагов приводит к созданию контроллера, он возвращается вместе с оставшейся частью маршрута, которая будет обрабатываться как идентификатор действия. В противном случае возвращается false.
| public array|boolean createController ( $route ) | ||
|---|---|---|
| $route | string |
Маршрут, состоящий из идентификаторов модуля, контроллера и действия. |
| return | array|boolean |
Если контроллер успешно создан, он возвращается вместе с запрошенным идентификатором действия. В противном случае возвращается |
| throws | yii\base\InvalidConfigException |
если класс контроллера и его файл не совпадают. |
createControllerByID() public method
Создаёт контроллер на основе заданного идентификатора контроллера.
Идентификатор контроллера относительный к этому модулю. Класс контроллера должен быть в пространстве имён $controllerNamespace.
Обратите внимание, что этот метод не проверяет $modules или $controllerMap.
| public yii\base\Controller|null createControllerByID ( $id ) | ||
|---|---|---|
| $id | string |
Идентификатор контроллера. |
| return | yii\base\Controller|null |
Недавно созданный экземпляр контроллера или |
| throws | yii\base\InvalidConfigException |
если класс контроллера и имя его файла не совпадают. Это исключение выбрасывается только в режиме отладки. |
defaultVersion() protected method (available since version 2.0.11)
Возвращает версию по умолчанию для модуля.
Дочерний класс может переопределить этот метод, чтобы предоставить более точное определение версии.
| protected string defaultVersion ( ) | ||
|---|---|---|
| return | string |
Версия этого модуля. |
getBasePath() public method
Возвращает корневой каталог модуля.
По умолчанию это каталог, содержащий файл класса модуля.
| public string getBasePath ( ) | ||
|---|---|---|
| return | string |
Корневой каталог модуля. |
getControllerPath() public method
Возвращает каталог, содержащий классы контроллеров согласно $controllerNamespace.
Обратите внимание, что для того, чтобы этот метод возвращал значение, вы должны определить псевдоним для корневого пространства имён $controllerNamespace.
| public string getControllerPath ( ) | ||
|---|---|---|
| return | string |
Каталог, содержащий классы контроллеров. |
| throws | yii\base\InvalidParamException |
если псевдоним не определён для корневого пространства имён $controllerNamespace. |
getInstance() public static method
Возвращает текущий запрошенный экземпляр этого класса модуля.
Если класс модуля не запрошен, возвращается null. Этот метод предоставляется для доступа к экземпляру модуля из любой точки внутри модуля.
| public static static|null getInstance ( ) | ||
|---|---|---|
| return | static|null |
Текущий запрошенный экземпляр этого класса модуля, или |
getLayoutPath() public method
Возвращает каталог, содержащий файлы представления макета для этого модуля.
| public string getLayoutPath ( ) | ||
|---|---|---|
| return | string |
Корневой каталог файлов макета. По умолчанию «$viewPath/layouts». |
getModule() public method
Извлекает дочерний модуль с указанным идентификатором.
Этот метод поддерживает извлечение как дочерних, так и внучатых модулей.
См. также hasModule().
| public yii\base\Module|null getModule ( $id, $load = true ) | ||
|---|---|---|
| $id | string |
Идентификатор модуля (регистрозависимый). Для получения модулей внуков используйте путь ID, относительный к этому модулю (например, |
| $load | boolean |
Загружать модуль, если он еще не загружен. |
| return | yii\base\Module|null |
Экземпляр модуля, |
getModules() public method
Возвращает дочерние модули в этом модуле.
| public array getModules ( $loadedOnly = false ) | ||
|---|---|---|
| $loadedOnly | boolean |
Возвращать только загруженные дочерние модули. Если это значение |
| return | array |
Модули (индексированные по их идентификаторам). |
getUniqueId() public method
Возвращает идентификатор, который однозначно идентифицирует этот модуль среди всех модулей в текущем приложении.
Обратите внимание, что если модуль является приложением, будет возвращена пустая строка.
| public string getUniqueId ( ) | ||
|---|---|---|
| return | string |
Уникальный идентификатор модуля. |
getVersion() public method (доступно начиная с версии 2.0.11)
Возвращает текущую версию модуля.
Если версия не установлена явно, будет использоваться метод defaultVersion() для определения ее значения.
| public string getVersion ( ) | ||
|---|---|---|
| return | string |
Версия этого модуля. |
getViewPath() public method
Возвращает директорию, содержащую файлы представления для этого модуля.
| public string getViewPath ( ) | ||
|---|---|---|
| return | string |
Основной каталог файлов представлений. По умолчанию "$basePath/views". |
hasModule() public method
Проверяет, существует ли дочерний модуль с указанным ID.
Этот метод поддерживает проверку существования дочерних и внуков модулей.
| public boolean hasModule ( $id ) | ||
|---|---|---|
| $id | string |
ID модуля. Для внуков модулей используйте путь ID, относительный к этому модулю (например, |
| return | boolean |
Существует ли модуль с указанным именем. Рассматриваются как загруженные, так и не загруженные модули. |
init() public method
Инициализирует модуль.
Этот метод вызывается после создания и инициализации модуля со значениями свойств, указанных в конфигурации. Стандартная реализация инициализирует $controllerNamespace, если он не задан.
Если вы переопределяете этот метод, убедитесь, что вызываете родительскую реализацию.
| public void init ( ) |
|---|
runAction() public method
Выполняет действие контроллера, заданное путем.
Этот метод анализирует указанный путь и создает соответствующие дочерние модули, контроллер и экземпляры действий. Затем он вызывает yii\base\Controller::runAction() для выполнения действия с заданными параметрами. Если путь пустой, метод будет использовать $defaultRoute.
| public mixed runAction ( $route, $params = [] ) | ||
|---|---|---|
| $route | string |
Путь, определяющий действие. |
| $params | array |
Параметры, передаваемые действию |
| return | mixed |
Результат действия. |
| throws | yii\base\InvalidRouteException |
если запрошенный путь не может быть успешно преобразован в действие. |
setAliases() public method
Определяет псевдонимы путей.
Этот метод вызывает Yii::setAlias() для регистрации псевдонимов путей. Этот метод предоставлен для того, чтобы вы могли определить псевдонимы путей при настройке модуля.
| public void setAliases ( $aliases ) | ||
|---|---|---|
| $aliases | array |
Список псевдонимов путей для определения. Ключи массива — имена псевдонимов (должны начинаться с [
'@models' => '@app/models', // an existing alias
'@backend' => __DIR__ . '/../backend', // a directory
]
|
setBasePath() public method
Устанавливает корневой каталог модуля.
Этот метод может быть вызван только в начале конструктора.
| public void setBasePath ( $path ) | ||
|---|---|---|
| $path | string |
Корневой каталог модуля. Это может быть имя каталога или псевдоним пути. |
| throws | yii\base\InvalidParamException |
если каталог не существует. |
setInstance() public static method
Устанавливает текущий запрашиваемый экземпляр этого класса модуля.
| public static void setInstance ( $instance ) | ||
|---|---|---|
| $instance | yii\base\Module|null |
Текущий запрашиваемый экземпляр этого класса модуля. Если это |
setLayoutPath() public method
Устанавливает каталог, содержащий файлы макета.
| public void setLayoutPath ( $path ) | ||
|---|---|---|
| $path | string |
Корневой каталог или псевдоним пути файлов макета. |
| throws | yii\base\InvalidParamException |
если каталог неверный |
setModule() public method
Добавляет дочерний модуль в этот модуль.
| public void setModule ( $id, $module ) | ||
|---|---|---|
| $id | string |
Идентификатор модуля. |
| $module | yii\base\Module|array|null |
Дочерний модуль, который нужно добавить в этот модуль. Это может быть одно из следующего:
|
setModules() public method
Регистрирует дочерние модули в текущем модуле.
Каждый дочерний модуль должен быть указан как имя-значение, где имя относится к идентификатору модуля, а значение — к модулю или конфигурационному массиву, который можно использовать для создания модуля. В последнем случае будет использоваться Yii::createObject() для создания модуля.
Если новый дочерний модуль имеет тот же ID, что и существующий, существующий будет перезаписан без каких-либо сообщений.
Следующий пример регистрирует два дочерних модуля:
[
'comment' => [
'class' => 'app\modules\comment\CommentModule',
'db' => 'db',
],
'booking' => ['class' => 'app\modules\booking\BookingModule'],
]
| public void setModules ( $modules ) | ||
|---|---|---|
| $modules | array |
Модули (id => конфигурация или экземпляры модулей). |
setVersion() public method (доступно начиная с версии 2.0.11)
Устанавливает текущую версию модуля.
| public void setVersion ( $version ) | ||
|---|---|---|
| $version | string|callable |
Версия этого модуля. Версия может быть задана как PHP-обработчик, который может принимать экземпляр модуля в качестве аргумента и должен возвращать фактическую версию. Например: function (Module $module) {
//return string
}
|
setViewPath() public method
Устанавливает директорию, содержащую файлы представлений.
| public void setViewPath ( $path ) | ||
|---|---|---|
| $path | string |
Основной каталог файлов представлений. |
| throws | yii\base\InvalidParamException |
если каталог некорректен. |
Подробности событий
EVENT_AFTER_ACTION событие типа yii\base\ActionEvent
Событие, возникающее после выполнения действия контроллера.
EVENT_BEFORE_ACTION событие типа yii\base\ActionEvent
Событие, возникающее перед выполнением действия контроллера. Вы можете установить yii\base\ActionEvent::$isValid в значение false для отмены выполнения действия.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-base-module.html