/** * @param DelayedOutput $value * @return DelayedOutput */ public function render($value) { header('Content-Encoding: none;'); header('X-Accel-Buffering: no'); ob_end_flush(); $value->surroundWith("<pre>", "</pre>"); $value->setPrinter(function ($string) { echo $string; $length = strlen($string); if (self::$bufferSize > $length) { echo str_repeat("", self::$bufferSize - $length + 1); } flush(); ob_flush(); }); return $value; }
/** * @param DelayedOutput $value * @return DelayedOutput */ public function render($value) { header('Content-Encoding: none;'); header('X-Accel-Buffering: no'); ob_end_flush(); $value->setPrinter(function ($string) { echo $string; $length = strlen($string); if (self::$bufferSize > $length) { echo str_repeat("", self::$bufferSize - $length + 1); } flush(); ob_flush(); }); $value->setExceptionHandler(function (\Exception $exception) { echo '</pre>'; echo new Element('div', ['class' => 'alert alert-danger'], [htmlentities($exception->getMessage())]); }); return new DelayedOutput(function () use($value) { $value->write('<pre>'); $value->__toString(); $value->write('</pre>'); }); }