From 536125ac3c383c83b30b52478cb193436e498436 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= Date: Wed, 22 Nov 2017 22:45:53 +0100 Subject: [PATCH] [VarDumper] New env var to select the dump format --- .../DataCollector/DumpDataCollector.php | 8 +++++++- src/Symfony/Component/VarDumper/CHANGELOG.md | 5 +++++ src/Symfony/Component/VarDumper/VarDumper.php | 19 ++++++++++++------- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php b/src/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php index 8e43faa9dd..814a4ac4ac 100644 --- a/src/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php +++ b/src/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php @@ -204,7 +204,13 @@ class DumpDataCollector extends DataCollector implements DataDumperInterface --$i; } - if (!\in_array(PHP_SAPI, array('cli', 'phpdbg'), true) && stripos($h[$i], 'html')) { + if (isset($_SERVER['VAR_DUMPER_FORMAT'])) { + $html = 'html' === $_SERVER['VAR_DUMPER_FORMAT']; + } else { + $html = !\in_array(PHP_SAPI, array('cli', 'phpdbg'), true) && stripos($h[$i], 'html'); + } + + if ($html) { $dumper = new HtmlDumper('php://output', $this->charset); $dumper->setDisplayOptions(array('fileLinkFormat' => $this->fileLinkFormat)); } else { diff --git a/src/Symfony/Component/VarDumper/CHANGELOG.md b/src/Symfony/Component/VarDumper/CHANGELOG.md index 34d9bbb0f5..0ef5e85bdb 100644 --- a/src/Symfony/Component/VarDumper/CHANGELOG.md +++ b/src/Symfony/Component/VarDumper/CHANGELOG.md @@ -1,6 +1,11 @@ CHANGELOG ========= +4.2.0 +----- + + * support selecting the format to use by setting the environment variable `VAR_DUMPER_FORMAT` to `html` or `cli` + 4.1.0 ----- diff --git a/src/Symfony/Component/VarDumper/VarDumper.php b/src/Symfony/Component/VarDumper/VarDumper.php index 137c474780..dbe38e3c88 100644 --- a/src/Symfony/Component/VarDumper/VarDumper.php +++ b/src/Symfony/Component/VarDumper/VarDumper.php @@ -27,15 +27,20 @@ class VarDumper public static function dump($var) { - if (null === self::$handler) { - $cloner = new VarCloner(); - $dumper = \in_array(PHP_SAPI, array('cli', 'phpdbg'), true) ? new CliDumper() : new HtmlDumper(); - self::$handler = function ($var) use ($cloner, $dumper) { - $dumper->dump($cloner->cloneVar($var)); - }; + if (null !== self::$handler) { + return \call_user_func(self::$handler, $var); } - return call_user_func(self::$handler, $var); + $cloner = new VarCloner(); + if (isset($_SERVER['VAR_DUMPER_FORMAT'])) { + $dumper = 'html' === $_SERVER['VAR_DUMPER_FORMAT'] ? new HtmlDumper() : new CliDumper(); + } else { + $dumper = \in_array(PHP_SAPI, array('cli', 'phpdbg')) ? new CliDumper() : new HtmlDumper(); + } + + self::$handler = function ($var) use ($cloner, $dumper) { + $dumper->dump($cloner->cloneVar($var)); + }; } public static function setHandler(callable $callable = null)