Класс yii\base\Controller
Controller — базовый класс для классов, содержащих логику контроллера.
Для получения дополнительной информации и использования контроллера, см. статью руководства по контроллерам.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $action | yii\base\Action | Действие, которое выполняется в настоящее время. | yii\base\Controller |
| $behaviors | yii\base\Behavior[] | Список прикрепленных к этому компоненту поведений. | yii\base\Component |
| $defaultAction | string | Идентификатор действия, используемого, когда идентификатор действия не указан в запросе. | yii\base\Controller |
| $id | string | Идентификатор этого контроллера. | yii\base\Controller |
| $layout | null|string|false | Имя макета, применяемого к представлениям этого контроллера. | yii\base\Controller |
| $module | yii\base\Module | Модуль, к которому принадлежит этот контроллер. | yii\base\Controller |
| $modules | yii\base\Module[] | Все родительские модули, в которых находится этот контроллер. | yii\base\Controller |
| $route | string | Маршрут (идентификатор модуля, идентификатор контроллера и идентификатор действия) текущего запроса. | yii\base\Controller |
| $uniqueId | string | Идентификатор контроллера, который предваряется идентификатором модуля (если есть). | yii\base\Controller |
| $view | yii\base\View|yii\web\View | Объект представления, который можно использовать для рендеринга представлений или файлов представлений. | yii\base\Controller |
| $viewPath | string | Директория, содержащая файлы представлений для этого контроллера. | yii\base\Controller |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __clone() | Этот метод вызывается после создания объекта путем клонирования существующего. | yii\base\Component |
| __construct() | yii\base\Controller | |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| actions() | Объявляет внешние действия для контроллера. | yii\base\Controller |
| afterAction() | Этот метод вызывается сразу после выполнения действия. | yii\base\Controller |
| attachBehavior() | Присоединяет поведение к данному компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| beforeAction() | Этот метод вызывается непосредственно перед выполнением действия. | yii\base\Controller |
| behaviors() | Возвращает список поведений, которые этот компонент должен демонстрировать. | yii\base\Component |
| bindActionParams() | Связывает параметры с действием. | yii\base\Controller |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| createAction() | Создает действие на основе заданного идентификатора действия. | yii\base\Controller |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| findLayoutFile() | Находит соответствующий файл макета. | yii\base\Controller |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все присоединённые к этому компоненту поведения. | yii\base\Component |
| getModules() | Возвращает все родительские модули этого контроллера. | yii\base\Controller |
| getRoute() | Возвращает маршрут текущего запроса. | yii\base\Controller |
| getUniqueId() | Возвращает уникальный идентификатор контроллера. | yii\base\Controller |
| getView() | Возвращает объект представления, который можно использовать для рендеринга представлений или файлов представлений. | yii\base\Controller |
| getViewPath() | Возвращает каталог, содержащий файлы представлений для этого контроллера. | yii\base\Controller |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли какой-либо обработчик, присоединенный к заданному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\base\Object |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| render() | Рендерит представление и применяет макет, если он доступен. | yii\base\Controller |
| renderContent() | Рендерит статическую строку, применяя макет. | yii\base\Controller |
| renderFile() | Рендерит файл представления. | yii\base\Controller |
| renderPartial() | Рендерит представление без применения макета. | yii\base\Controller |
| run() | Выполняет запрос, указанный в терминах маршрута. | yii\base\Controller |
| runAction() | Выполняет действие внутри этого контроллера с заданным идентификатором действия и параметрами. | yii\base\Controller |
| setView() | Устанавливает объект представления, который будет использоваться этим контроллером. | yii\base\Controller |
| setViewPath() | Устанавливает каталог, содержащий файлы представлений. | yii\base\Controller |
| trigger() | Вызывает событие. | yii\base\Component |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_AFTER_ACTION | yii\base\ActionEvent | Событие, срабатывающее сразу после выполнения действия контроллера. | yii\base\Controller |
| EVENT_BEFORE_ACTION | yii\base\ActionEvent | Событие, срабатывающее непосредственно перед выполнением действия контроллера. | yii\base\Controller |
Подробное описание свойств
$action общедоступное свойство
Действие, которое в настоящее время выполняется. Это свойство будет установлено методом run(), когда оно вызывается yii\base\Application для выполнения действия.
public yii\base\Action $action = null
$defaultAction общедоступное свойство
Идентификатор действия, используемый, когда идентификатор действия не указан в запросе. По умолчанию равен 'index'.
public string $defaultAction = 'index'
$id общедоступное свойство
Идентификатор этого контроллера.
public string $id = null
$layout общедоступное свойство
Имя макета, применяемого к представлениям этого контроллера. Это свойство в основном влияет на поведение метода render(). По умолчанию равно null, что означает, что фактическое значение макета должно наследоваться от значения макета $module. Если false, макет не будет применяться.
public null|string|false $layout = null
$module общественное свойство
Модуль, к которому принадлежит этот контроллер.
public yii\base\Module $module = null
$modules общественное только для чтения свойство
Все родительские модули, в которых находится этот контроллер.
public yii\base\Module[] getModules ( )
$route общественное только для чтения свойство
Маршрут (ID модуля, ID контроллера и ID действия) текущего запроса.
public string getRoute ( )
$uniqueId общественное только для чтения свойство
Идентификатор контроллера, который префиксется идентификатором модуля (если таковой имеется).
public string getUniqueId ( )
$view общественное свойство
Объект представления, который можно использовать для рендеринга представлений или файлов представлений.
public yii\base\View|yii\web\View getView ( )
public void setView ( $view )
$viewPath общественное свойство
Директория, содержащая файлы представлений для этого контроллера.
public string getViewPath ( )
public void setViewPath ( $path )
Подробное описание методов
__construct() public method
| public void __construct ( $id, $module, $config = [] ) | ||
|---|---|---|
| $id | string |
Идентификатор данного контроллера. |
| $module | yii\base\Module |
Модуль, к которому принадлежит данный контроллер. |
| $config | array |
Пара имя-значение, которые будут использованы для инициализации свойств объекта. |
actions() public method
Объявляет внешние действия для контроллера.
Этот метод предназначен для переопределения, чтобы объявить внешние действия для контроллера. Он должен возвращать массив, где ключи массива — идентификаторы действий, а значения — соответствующие имена классов действий или конфигурационные массивы действий. Например,
return [
'action1' => 'app\components\Action1',
'action2' => [
'class' => 'app\components\Action2',
'property1' => 'value1',
'property2' => 'value2',
],
];
Yii::createObject() будет использоваться позже для создания запрошенного действия с использованием предоставленной здесь конфигурации.
| public void actions ( ) |
|---|
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)
{
// your custom code here, if you want the code to run before action filters,
// which are triggered on the [[EVENT_BEFORE_ACTION]] event, e.g. PageCache or AccessControl
if (!parent::beforeAction($action)) {
return false;
}
// other custom code here
return true; // or false to not run the action
}
| public boolean beforeAction ( $action ) | ||
|---|---|---|
| $action | yii\base\Action |
Действие, подлежащее выполнению. |
| return | boolean |
Должно ли действие продолжить выполнение. |
bindActionParams() public method
Связывает параметры с действием.
Этот метод вызывается yii\base\Action при запуске с заданными параметрами.
| public array bindActionParams ( $action, $params ) | ||
|---|---|---|
| $action | yii\base\Action |
Действие, которое должно быть связано с параметрами. |
| $params | array |
Параметры, которые должны быть связаны с действием. |
| return | array |
Действительные параметры, с которыми действие может быть выполнено. |
createAction() public method
Создает действие на основе данного идентификатора действия.
Метод сначала проверяет, был ли идентификатор действия объявлен в actions(). Если да, он использует объявленную там конфигурацию для создания объекта действия. Если нет, он ищет метод контроллера, имя которого имеет формат actionXyz , где Xyz представляет идентификатор действия. Если найдено, будет создан и возвращен yii\base\InlineAction, представляющий этот метод.
| public yii\base\Action|null createAction ( $id ) | ||
|---|---|---|
| $id | string |
Идентификатор действия. |
| return | yii\base\Action|null |
Новый созданный экземпляр действия. Null, если идентификатор не разрешается в какое-либо действие. |
findLayoutFile() public method
Находит соответствующий файл макета.
| public string|boolean findLayoutFile ( $view ) | ||
|---|---|---|
| $view | yii\base\View |
Объект представления для отображения файла макета. |
| return | string|boolean |
Путь к файлу макета или false, если макет не требуется. Обратитесь к render() для указания этого параметра. |
| throws | yii\base\InvalidParamException |
если используется некорректный псевдоним пути для указания макета. |
getModules() public method
Возвращает все родительские модули этого контроллера.
Первый модуль в массиве — самый внешний (т.е. экземпляр приложения), последний — самый внутренний.
| public yii\base\Module[] getModules ( ) | ||
|---|---|---|
| return | yii\base\Module[] |
Все родительские модули, в которых находится данный контроллер. |
getRoute() public method
Возвращает маршрут текущего запроса.
| public string getRoute ( ) | ||
|---|---|---|
| return | string |
Маршрут (идентификатор модуля, идентификатор контроллера и идентификатор действия) текущего запроса. |
getUniqueId() public method
Возвращает уникальный идентификатор контроллера.
| public string getUniqueId ( ) | ||
|---|---|---|
| return | string |
Идентификатор контроллера, который префиксруется идентификатором модуля (если таковой имеется). |
getView() public method
Возвращает объект представления, который можно использовать для отображения представлений или файлов представлений.
Методы render(), renderPartial() и renderFile() будут использовать этот объект представления для реализации фактического отображения представления. Если не задано, по умолчанию используется компонент приложения "view".
| public yii\base\View|yii\web\View getView ( ) | ||
|---|---|---|
| return | yii\base\View|yii\web\View |
Объект представления, который можно использовать для отображения представлений или файлов представлений. |
getViewPath() public method
Возвращает каталог, содержащий файлы представлений для данного контроллера.
Реализация по умолчанию возвращает каталог с именем контроллера $id в каталоге $module's $viewPath.
| public string getViewPath ( ) | ||
|---|---|---|
| return | string |
Каталог, содержащий файлы представлений для данного контроллера. |
render() public method
Отображает представление и применяет макет, если он доступен.
Представление, которое нужно отобразить, можно указать в одном из следующих форматов:
- псевдоним пути (например, "@app/views/site/index");
- абсолютный путь в приложении (например, "//site/index"): имя представления начинается с двойных слешей. Фактический файл представления будет искаться в каталоге пути представления приложения.
- абсолютный путь в модуле (например, "/site/index"): имя представления начинается с одинарной косой черты. Фактический файл представления будет искаться в каталоге пути представления модуля $module.
- относительный путь (например, "index"): фактический файл представления будет искаться в $viewPath.
Для определения, какой макет следует применить, выполняются следующие два шага:
- На первом шаге определяется имя макета и контекстный модуль:
- Если $layout указан как строка, используйте его в качестве имени макета и $module как контекстный модуль;
- Если $layout равен null, ищите во всех родительских модулях этого контроллера и найдите первый модуль, у которого макет не равен null. Макет и соответствующий модуль используются как имя макета и контекстный модуль соответственно. Если такой модуль не найден или соответствующий макет не является строкой, будет возвращено значение false, означающее, что подходящий макет не найден.
- На втором шаге определяется фактический файл макета в соответствии с ранее найденным именем макета и контекстным модулем. Имя макета может быть:
- путь алиаса (например, "@app/views/layouts/main");
- абсолютный путь (например, "/main"): имя макета начинается с косой черты. Фактический файл макета будет искаться в пути к макетам приложения;
- относительный путь (например, "main"): фактический файл макета будет искаться в пути к макетам контекстного модуля.
Если имя макета не содержит расширения файла, будет использовано стандартное расширение .php.
| public строка render ( $view, $params = [] ) | ||
|---|---|---|
| $view | строка |
Имя представления. |
| $params | массив |
Параметры (имя-значение), которые должны быть доступны в представлении. Эти параметры не будут доступны в макете. |
| return | строка |
Результат рендеринга. |
| throws | yii\base\InvalidParamException |
если файл представления или файл макета не существует. |
renderContent() общедоступный метод (доступен с версии 2.0.1)
Отображает статическую строку, применяя макет.
| public строка renderContent ( $content ) | ||
|---|---|---|
| $content | строка |
Статическая строка, отображаемая |
| return | строка |
Результат рендеринга макета со статической строкой в качестве |
renderFile() общедоступный метод
Отображает файл представления.
| public строка renderFile ( $file, $params = [] ) | ||
|---|---|---|
| $file | строка |
Файл представления для отображения. Может быть как путем к файлу, так и путем алиаса. |
| $params | массив |
Параметры (имя-значение), которые должны быть доступны в представлении. |
| return | строка |
Результат рендеринга. |
| throws | yii\base\InvalidParamException |
если файл представления не существует. |
renderPartial() общедоступный метод
Отображает представление без применения макета.
Этот метод отличается от render() тем, что не применяет макет.
| public строка renderPartial ( $view, $params = [] ) | ||
|---|---|---|
| $view | строка |
Имя представления. См. render() для уточнения способов указания имени представления. |
| $params | массив |
Параметры (имя-значение), которые должны быть доступны в представлении. |
| return | строка |
Результат рендеринга. |
| throws | yii\base\InvalidParamException |
если файл представления не существует. |
run() общедоступный метод
Выполняет запрос, заданный в виде маршрута.
Маршрут может быть либо идентификатором действия в этом контроллере, либо полным маршрутом, состоящим из идентификаторов модулей, контроллера и действия. Если маршрут начинается с косой черты '/', анализ маршрута начнется с приложения; в противном случае он начнется с родительского модуля этого контроллера.
См. также runAction().
| public смешанный тип run ( $route, $params = [] ) | ||
|---|---|---|
| $route | строка |
Маршрут для обработки, например, 'view', 'comment/view', '/admin/comment/view'. |
| $params | массив |
Параметры, передаваемые действию. |
| return | смешанный тип |
Результат действия. |
runAction() общедоступный метод
Выполняет действие внутри этого контроллера с указанным идентификатором действия и параметрами.
Если идентификатор действия пустой, метод использует $defaultAction.
См. также createAction().
| public смешанный тип runAction ( $id, $params = [] ) | ||
|---|---|---|
| $id | строка |
Идентификатор действия, подлежащего выполнению. |
| $params | массив |
Параметры (имя-значение), передаваемые действию. |
| return | смешанный тип |
Результат действия. |
| throws | yii\base\InvalidRouteException |
если запрошенный идентификатор действия не может быть успешно разрешен в действие. |
setView() общедоступный метод
Устанавливает объект представления, который будет использоваться этим контроллером.
| public void setView ( $view ) | ||
|---|---|---|
| $view | yii\base\View|yii\web\View |
Объект представления, который может использоваться для рендеринга представлений или файлов представлений. |
setViewPath() общедоступный метод (доступен с версии 2.0.7)
Устанавливает каталог, содержащий файлы представлений.
| public void setViewPath ( $path ) | ||
|---|---|---|
| $path | строка |
Корневой каталог файлов представлений. |
| 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-controller.html