响应中的ob_start在哪里?

时间:2018-01-28 17:50:09

标签: php symfony response symfony-http-foundation

如果我使用$response->send(),则执行此代码:

public static function closeOutputBuffers($targetLevel, $flush)
    {
        $status = ob_get_status(true);
        $level = count($status);
        // PHP_OUTPUT_HANDLER_* are not defined on HHVM 3.3
        $flags = defined('PHP_OUTPUT_HANDLER_REMOVABLE') ? PHP_OUTPUT_HANDLER_REMOVABLE | ($flush ? PHP_OUTPUT_HANDLER_FLUSHABLE : PHP_OUTPUT_HANDLER_CLEANABLE) : -1;

        while ($level-- > $targetLevel && ($s = $status[$level]) && (!isset($s['del']) ? !isset($s['flags']) || ($s['flags'] & $flags) === $flags : $s['del'])) {
            if ($flush) {
                ob_end_flush();
            } else {
                ob_end_clean();
            }
        }
    }

但整个班级ob_start等都没有......

向ob添加内容并通过ob_end_flush显示此内容的另一种方法是什么?

这段代码是如何工作的?

变量$status中是:

array (size=1)
  0 => 
    array (size=7)
      'name' => string 'default output handler' (length=22)
      'type' => int 0
      'flags' => int 112
      'level' => int 0
      'chunk_size' => int 4096
      'buffer_size' => int 8192
      'buffer_used' => int 8

但我无法从http-foundation中找到整个包中的“默认输出处理程序”。为什么呢?

0 个答案:

没有答案