Spec-Zone.ru › Yii 2.0

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

Создаёт экземпляр контроллера на основе заданного маршрута.

Маршрут должен быть относительным к этому модулю. Метод реализует следующий алгоритм для разрешения заданного маршрута:

  1. Если маршрут пуст, используйте $defaultRoute;
  2. Если первый сегмент маршрута является допустимым идентификатором модуля, как указано в $modules, вызовите метод createController() с оставшейся частью маршрута;
  3. Если первый сегмент маршрута найден в $controllerMap, создайте контроллер на основе соответствующей конфигурации, найденной в $controllerMap;
  4. Заданный маршрут имеет формат abc/def/xyz. Попробуйте класс abc\DefController или abc\def\XyzController в пространстве имён контроллера $controllerNamespace.

Если любой из вышеперечисленных шагов приводит к созданию контроллера, он возвращается вместе с оставшейся частью маршрута, которая будет обрабатываться как идентификатор действия. В противном случае возвращается false.

public array|boolean createController ( $route )
$route string

Маршрут, состоящий из идентификаторов модуля, контроллера и действия.

return array|boolean

Если контроллер успешно создан, он возвращается вместе с запрошенным идентификатором действия. В противном случае возвращается false.

throws yii\base\InvalidConfigException

если класс контроллера и его файл не совпадают.

createControllerByID() public method

Создаёт контроллер на основе заданного идентификатора контроллера.

Идентификатор контроллера относительный к этому модулю. Класс контроллера должен быть в пространстве имён $controllerNamespace.

Обратите внимание, что этот метод не проверяет $modules или $controllerMap.

public yii\base\Controller|null createControllerByID ( $id )
$id string

Идентификатор контроллера.

return yii\base\Controller|null

Недавно созданный экземпляр контроллера или 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

Текущий запрошенный экземпляр этого класса модуля, или 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, относительный к этому модулю (например, admin/content).

$load boolean

Загружать модуль, если он еще не загружен.

return yii\base\Module|null

Экземпляр модуля, null если модуль не существует.

getModules() public method

Возвращает дочерние модули в этом модуле.

public array getModules ( $loadedOnly = false )
$loadedOnly boolean

Возвращать только загруженные дочерние модули. Если это значение false, то будут возвращены все зарегистрированные в этом модуле дочерние модули, загруженные или нет. Загруженные модули будут возвращены как объекты, а не загруженные — как конфигурационные массивы.

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, относительный к этому модулю (например, admin/content).

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

Текущий запрашиваемый экземпляр этого класса модуля. Если это 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

Дочерний модуль, который нужно добавить в этот модуль. Это может быть одно из следующего:

  • объект yii\base\Module
  • массив конфигурации: когда getModule() вызывается изначально, массив будет использован для создания дочернего модуля
  • 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

Spec-Zone.ru

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