* @since 2.0 */ class Clip extends Widget { /** * @var string the ID of this clip. */ public $id; /** * @var boolean whether to render the clip content in place. Defaults to false, * meaning the captured clip will not be displayed. */ public $renderInPlace = false; /** * Starts recording a clip. */ public function init() { ob_start(); ob_implicit_flush(false); } /** * Ends recording a clip. * This method stops output buffering and saves the rendering result as a named clip in the controller. */ public function run() { $clip = ob_get_clean(); if ($this->renderClip) { echo $clip; } $this->view->clips[$this->id] = $clip; } }