CViewRenderer
| Package | system.web.renderers |
|---|---|
| Inheritance | abstract class CViewRenderer » CApplicationComponent » CComponent |
| Implements | IApplicationComponent, IViewRenderer |
| Subclasses | CPradoViewRenderer |
| Since | 1.0 |
| Source Code | framework/web/renderers/CViewRenderer.php |
Рендерер представлений — это компонент приложения, который отображает представления, написанные на пользовательском синтаксисе.
После установки рендерера представлений в качестве компонента приложения 'viewRenderer', обычный процесс отображения представлений будет перехвачен рендерером. Сначала рендерер разбирает исходный файл представления, а затем отображает результирующий файл представления.
Результаты разбора сохраняются как временные файлы, которые могут храниться в каталоге времени выполнения приложения или вместе с исходным файлом представления.
Публичные свойства
| Property | Type | Description | Defined By |
|---|---|---|---|
| behaviors | array | поведения, которые должны быть прикреплены к этому компоненту. | CApplicationComponent |
| fileExtension | string | расширение имени файла представления. | CViewRenderer |
| filePermission | integer | разрешение chmod для временных каталогов и файлов, созданных во время разбора. | CViewRenderer |
| isInitialized | boolean | Проверяет, был ли инициализирован этот компонент приложения. | CApplicationComponent |
| useRuntimePath | boolean | хранить ли результаты разбора в каталоге времени выполнения приложения. | CViewRenderer |
Публичные методы
| Method | Description | Defined By |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства null. | 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 |
| getEventHandlers() | Возвращает список прикрепленных обработчиков событий для события. | CComponent |
| getIsInitialized() | Проверяет, был ли инициализирован этот компонент приложения. | CApplicationComponent |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли у именованного события прикрепленные обработчики. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| init() | Инициализирует компонент приложения. | CApplicationComponent |
| raiseEvent() | Вызывает событие. | CComponent |
| renderFile() | Рендерит файл представления. | CViewRenderer |
Защищенные методы
| Method | Description | Defined By |
|---|---|---|
| generateViewFile() | Разбирает исходный файл представления и сохраняет результаты в другой файл. | CViewRenderer |
| getViewFile() | Генерирует путь к результирующему файлу представления. | CViewRenderer |
Краткое описание полей
fileExtension property
public string $fileExtension;
расширение имени файла представления. По умолчанию '.php'.
filePermission property
public integer $filePermission;
разрешение chmod для временных каталогов и файлов, созданных во время разбора. По умолчанию 0755 (владелец rwx, группа rx и другие rx).
useRuntimePath property
public boolean $useRuntimePath;
хранить ли результаты разбора в каталоге времени выполнения приложения. По умолчанию true. Если false, результаты разбора будут сохранены как файлы в том же каталоге, что и исходные файлы представлений, а имена файлов будут именами исходных файлов с добавленной буквой 'c'.
Краткое описание методов
generateViewFile() method
abstract protected void generateViewFile(string $sourceFile, string $viewFile) | ||
| $sourceFile | string | путь к исходному файлу представления |
| $viewFile | string | путь к результирующему файлу представления |
abstract protected function generateViewFile($sourceFile,$viewFile);
Разбирает исходный файл представления и сохраняет результаты в другой файл.
getViewFile() method
protected string getViewFile(string $file) | ||
| $file | string | путь к файлу представления |
| {return} | string | путь к генерируемому файлу представления |
protected function getViewFile($file)
{
if($this->useRuntimePath)
{
$crc=sprintf('%x', crc32(get_class($this).Yii::getVersion().dirname($file)));
$viewFile=Yii::app()->getRuntimePath().DIRECTORY_SEPARATOR.'views'.DIRECTORY_SEPARATOR.$crc.DIRECTORY_SEPARATOR.basename($file);
if(!is_file($viewFile))
@mkdir(dirname($viewFile),$this->filePermission,true);
return $viewFile;
}
else
return $file.'c';
}
Генерирует путь к результативному файлу представления.
renderFile() метод
public mixed renderFile(CBaseController $context, string $sourceFile, mixed $data, boolean $return) | ||
| $context | CBaseController | контроллер или виджет, который отображает файл представления. |
| $sourceFile | string | путь к файлу представления |
| $data | смешанный тип | данные, передаваемые представлению |
| $return | boolean | должны ли быть возвращены результаты рендеринга |
| {return} | смешанный тип | результат рендеринга или null, если результат рендеринга не нужен. |
public function renderFile($context,$sourceFile,$data,$return)
{
if(!is_file($sourceFile) || ($file=realpath($sourceFile))===false)
throw new CException(Yii::t('yii','View file "{file}" does not exist.',array('{file}'=>$sourceFile)));
$viewFile=$this->getViewFile($sourceFile);
if(@filemtime($sourceFile)>@filemtime($viewFile))
{
$this->generateViewFile($sourceFile,$viewFile);
@chmod($viewFile,$this->filePermission);
}
return $context->renderInternal($viewFile,$data,$return);
}
Отображает файл представления. Этот метод необходим для IViewRenderer.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CViewRenderer