CViewAction
| Пакет | system.web.actions |
|---|---|
| Наследование | класс CViewAction » CAction » CComponent |
| Реализует | IAction |
| С момента | 1.0 |
| Исходный код | framework/web/actions/CViewAction.php |
По умолчанию, отображаемое представление задаётся через параметр
view GET. Имя параметра GET можно настроить с помощью viewParam. Если пользователь не предоставляет параметр GET, будет отображено представление по умолчанию, заданное в defaultView. Пользователи задают представление в формате
path.to.view, что переводится в имя представления BasePath/path/to/view, где BasePath задаётся basePath. Обратите внимание, что указанное пользователем представление может содержать только символы слов, точки и дефисы, а первая буква должна быть буквой.
Свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| basePath | строка | базовый путь для представлений. | CViewAction |
| controller | CController | контроллер, владелец данного действия. | CAction |
| defaultView | строка | имя представления по умолчанию, когда пользователь не предоставляет параметр GET viewParam. | CViewAction |
| id | строка | идентификатор данного действия | CAction |
| layout | смешанный | имя макета, применяемого к представлениям. | CViewAction |
| renderAsText | булево | представление должно быть отображено как PHP-скрипт или статический текст. | CViewAction |
| requestedView | строка | Возвращает имя представления, запрошенного пользователем. | CViewAction |
| view | строка | имя представления для отображения. | CViewAction |
| viewParam | строка | имя параметра GET, содержащего имя запрошенного представления. | CViewAction |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод с заданным именем, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CAction |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства нулевым. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в значение null. | CComponent |
| asa() | Возвращает объект поведения с указанным именем. | CComponent |
| attachBehavior() | Присоединяет поведение к этому компоненту. | CComponent |
| attachBehaviors() | Присоединяет список поведений к компоненту. | CComponent |
| attachEventHandler() | Присоединяет обработчик событий к событию. | CComponent |
| canGetProperty() | Определяет, можно ли прочитать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает присоединённое поведение. | CComponent |
| disableBehaviors() | Отключает все присоединённые поведения к этому компоненту. | CComponent |
| enableBehavior() | Включает присоединённое поведение. | CComponent |
| enableBehaviors() | Включает все присоединённые поведения к этому компоненту. | CComponent |
| evaluateExpression() | Вычисляет PHP-выражение или обратный вызов в контексте этого компонента. | CComponent |
| getController() | Возвращает контроллер, владелец этого действия. | CAction |
| getEventHandlers() | Возвращает список присоединённых обработчиков событий для события. | CComponent |
| getId() | Возвращает идентификатор этого действия | CAction |
| getRequestedView() | Возвращает имя представления, запрошенного пользователем. | CViewAction |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли у события присоединённые обработчики. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| onAfterRender() | Срабатывает сразу после того, как действие вызовет метод render. | CViewAction |
| onBeforeRender() | Срабатывает сразу перед тем, как действие вызовет метод render. | CViewAction |
| raiseEvent() | Возбуждает событие. | CComponent |
| run() | Выполняет действие. | CViewAction |
| runWithParams() | Выполняет действие с предоставленными параметрами запроса. | CAction |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| resolveView() | Преобразует указанный пользователем вид в допустимое имя вида. | CViewAction |
| runWithParamsInternal() | Выполняет метод объекта с предоставленными именованными параметрами. | CAction |
События
| Событие | Описание | Определено в |
|---|---|---|
| onBeforeRender | Срабатывает непосредственно перед тем, как действие вызовет метод render. | CViewAction |
| onAfterRender | Срабатывает сразу после того, как действие вызовет метод render. | CViewAction |
Подробное описание свойств
basePath свойство
public string $basePath;
базовый путь для представлений. По умолчанию равен 'pages'. Базовый путь будет добавлен в качестве префикса к любому указанному пользователем представлению страницы. Например, если пользователь запросит tutorial.chap1, соответствующее имя представления будет pages/tutorial/chap1, предполагая, что базовый путь равен pages. Фактический файл представления определяется методом CController::getViewFile.
См. также
defaultView свойство
public string $defaultView;
имя представления по умолчанию, когда пользователь не предоставляет параметр GET viewParam. По умолчанию равно 'index'. Это должно быть в формате 'путь.к.представлению', аналогично тому, что указано в параметре GET.
См. также
layout свойство
public mixed $layout;
имя макета, которое будет применено к представлениям. Оно будет присвоено свойству CController::layout перед отрисовкой представления. По умолчанию равно null, что означает использование макета контроллера. Если false, макет не будет применён.
renderAsText свойство
public boolean $renderAsText;
определяет, должно ли представление отображаться как PHP-скрипт или статический текст. По умолчанию равно false.
requestedView свойство только для чтения
public string getRequestedView()
Возвращает имя представления, запрошенного пользователем. Если пользователь не указывает представление, возвращается значение defaultView.
view свойство
public string $view;
имя представления, которое будет отрисовано. Это свойство будет установлено после разрешения запрошенного пользователем представления.
viewParam свойство
public string $viewParam;
имя параметра GET, содержащего имя запрошенного представления. По умолчанию равно 'view'.
Подробное описание методов
getRequestedView() метод
public string getRequestedView() | ||
| {return} | строка | имя представления, запрошенного пользователем. Оно имеет формат 'путь.к.представлению'. |
public function getRequestedView()
{
if($this->_viewPath===null)
{
if(!empty($_GET[$this->viewParam]) && is_string($_GET[$this->viewParam]))
$this->_viewPath=$_GET[$this->viewParam];
else
$this->_viewPath=$this->defaultView;
}
return $this->_viewPath;
}
Возвращает имя представления, запрошенного пользователем. Если пользователь не указывает представление, возвращается значение defaultView.
onAfterRender() метод
public void onAfterRender(CEvent $event) | ||
| $event | CEvent | параметр события |
public function onAfterRender($event)
{
$this->raiseEvent('onAfterRender',$event);
}
Вызывается сразу после того, как действие вызывает метод render.
onBeforeRender() метод
public void onBeforeRender(CEvent $event) | ||
| $event | CEvent | параметр события |
public function onBeforeRender($event)
{
$this->raiseEvent('onBeforeRender',$event);
}
Вызывается сразу перед тем, как действие вызовет метод render. Обработчики событий могут установить свойство CEvent::handled в true, чтобы остановить дальнейшую отрисовку представления.
resolveView() метод
protected string resolveView(string $viewPath) | ||
| $viewPath | строка | указанное пользователем представление в формате 'путь.к.представлению'. |
| {return} | строка | полностью разрешённое представление в формате 'путь/к/представлению'. |
protected function resolveView($viewPath)
{
// start with a word char and have word chars, dots and dashes only
if(preg_match('/^\w[\w\.\-]*$/',$viewPath))
{
$view=strtr($viewPath,'.','/');
if(!empty($this->basePath))
$view=$this->basePath.'/'.$view;
if($this->getController()->getViewFile($view)!==false)
{
$this->view=$view;
return;
}
}
throw new CHttpException(404,Yii::t('yii','The requested view "{name}" was not found.',
array('{name}'=>$viewPath)));
}
Разрешает указанное пользователем представление в действительное имя представления.
run() метод
public void run() |
public function run()
{
$this->resolveView($this->getRequestedView());
$controller=$this->getController();
if($this->layout!==null)
{
$layout=$controller->layout;
$controller->layout=$this->layout;
}
$this->onBeforeRender($event=new CEvent($this));
if(!$event->handled)
{
if($this->renderAsText)
{
$text=file_get_contents($controller->getViewFile($this->view));
$controller->renderText($text);
}
else
$controller->render($this->view);
$this->onAfterRender(new CEvent($this));
}
if($this->layout!==null)
$controller->layout=$layout;
}
Выполняет действие. Этот метод отображает представление, запрошенное пользователем.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CViewAction