COutputProcessor
| Пакет | system.web.widgets |
|---|---|
| Наследование | class COutputProcessor » CFilterWidget » CWidget » CBaseController » CComponent |
| Реализует | IFilter |
| Подклассы | CContentDecorator, CHtmlPurifier, CMarkdown, CTextHighlighter |
| С версии | 1.0 |
| Исходный код | framework/web/widgets/COutputProcessor.php |
COutputProcessor преобразует содержимое в другой формат.
COutputProcessor захватывает вывод, генерируемый действием или фрагментом представления, и передает его обработчикам событий onProcessOutput для дальнейшей обработки.
Обработчик событий может обработать вывод и сохранить его обратно в свойство COutputEvent::output. Установив свойство handled параметра события в true, вывод больше не будет выводиться. В противном случае (по умолчанию) вывод будет выведен.
COutputProcessor захватывает вывод, генерируемый действием или фрагментом представления, и передает его обработчикам событий onProcessOutput для дальнейшей обработки.
Обработчик событий может обработать вывод и сохранить его обратно в свойство COutputEvent::output. Установив свойство handled параметра события в true, вывод больше не будет выводиться. В противном случае (по умолчанию) вывод будет выведен.
Свойства общего доступа
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| actionPrefix | строка | префикс к идентификаторам действий. | CWidget |
| controller | CController | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| id | строка | Возвращает ID виджета или генерирует новый, если запрошено. | CWidget |
| isFilter | логическое значение | указывает, используется ли этот виджет в качестве фильтра. | CFilterWidget |
| owner | CBaseController | Возвращает владельца/создателя этого виджета. | CWidget |
| skin | смешанный тип | имя используемой темы для этого виджета. | CWidget |
| stopAction | логическое значение | определяет, останавливать ли выполнение действия, когда этот виджет используется как фильтр. | CFilterWidget |
| viewPath | строка | Возвращает директорию, содержащую файлы представления для этого виджета. | CWidget |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод с указанным именем, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CFilterWidget |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение по имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства нулевым. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в значение null. | CComponent |
| actions() | Возвращает список действий, используемых этим виджетом. | CWidget |
| asa() | Возвращает объект поведения с указанным именем. | CComponent |
| attachBehavior() | Присоединяет поведение к компоненту. | CComponent |
| attachBehaviors() | Присоединяет список поведений к компоненту. | CComponent |
| attachEventHandler() | Присоединяет обработчик событий к событию. | CComponent |
| beginCache() | Начинает кэширование фрагментов. | CBaseController |
| beginClip() | Начинает запись клипа. | CBaseController |
| beginContent() | Начинает отображение содержимого, которое должно быть обработано указанным представлением. | CBaseController |
| beginWidget() | Создаёт виджет и выполняет его. | CBaseController |
| canGetProperty() | Определяет, можно ли считать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| createWidget() | Создаёт виджет и инициализирует его. | CBaseController |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает присоединённое поведение. | CComponent |
| disableBehaviors() | Отключает все присоединённые поведения к данному компоненту. | CComponent |
| enableBehavior() | Включает присоединённое поведение. | CComponent |
| enableBehaviors() | Включает все присоединённые поведения к этому компоненту. | CComponent |
| endCache() | Заканчивает кэширование фрагментов. | CBaseController |
| endClip() | Заканчивает запись клипа. | CBaseController |
| endContent() | Заканчивает отображение содержимого. | CBaseController |
| endWidget() | Заканчивает выполнение указанного виджета. | CBaseController |
| evaluateExpression() | Вычисляет выражение PHP или обратный вызов в контексте данного компонента. | CComponent |
| filter() | Выполняет фильтрацию. | CFilterWidget |
| getController() | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| getEventHandlers() | Возвращает список присоединённых обработчиков событий для события. | CComponent |
| getId() | Возвращает идентификатор виджета или генерирует новый, если это требуется. | CWidget |
| getIsFilter() | Проверяет, используется ли этот виджет в качестве фильтра. | CFilterWidget |
| getOwner() | Возвращает владельца/создателя этого виджета. | CWidget |
| getViewFile() | Ищет файл сценария представления в соответствии с именем представления. | CWidget |
| getViewPath() | Возвращает директорию, содержащую файлы представлений для этого виджета. | CWidget |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, имеет ли указанное событие прикреплённые обработчики. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| init() | Инициализирует виджет. | COutputProcessor |
| onProcessOutput() | Вызывается, когда вывод был получен. | COutputProcessor |
| processOutput() | Обрабатывает полученный вывод. | COutputProcessor |
| raiseEvent() | Вызывает событие. | CComponent |
| render() | Отображает представление. | CWidget |
| renderFile() | Отображает файл представления. | CBaseController |
| renderInternal() | Отображает файл представления. | CBaseController |
| run() | Выполняет виджет. | COutputProcessor |
| setId() | Устанавливает идентификатор виджета. | CWidget |
| widget() | Создаёт виджет и выполняет его. | CBaseController |
События
| Событие | Описание | Определено в |
|---|---|---|
| onProcessOutput | Вызывается, когда вывод был получен. | COutputProcessor |
Подробное описание методов
init() метод
public void init() |
Исходный код: framework/web/widgets/COutputProcessor.php#31 (показать)
public function init()
{
ob_start();
ob_implicit_flush(false);
}
Инициализирует виджет. Этот метод запускает буферизацию вывода.
onProcessOutput() метод
public void onProcessOutput(COutputEvent $event) | ||
| $event | COutputEvent | параметр события |
Исходный код: framework/web/widgets/COutputProcessor.php#72 (показать)
public function onProcessOutput($event)
{
$this->raiseEvent('onProcessOutput',$event);
}
Вызывается при получении результата вывода.
processOutput() метод
public void processOutput(string $output) | ||
| $output | строка | захваченный вывод для обработки |
Исходный код: framework/web/widgets/COutputProcessor.php#55 (показать)
public function processOutput($output)
{
if($this->hasEventHandler('onProcessOutput'))
{
$event=new COutputEvent($this,$output);
$this->onProcessOutput($event);
if(!$event->handled)
echo $output;
}
else
echo $output;
}
Обрабатывает полученный вывод.
По умолчанию генерируется событие onProcessOutput. Если событие не обработано никаким обработчиком, вывод будет выведен.
run() метод
public void run() |
Исходный код: framework/web/widgets/COutputProcessor.php#41 (показать)
public function run()
{
$output=ob_get_clean();
$this->processOutput($output);
}
Выполняет виджет. Этот метод останавливает буферизацию вывода и обрабатывает полученный вывод.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/COutputProcessor