From 0def211b9b67a815fb70476ab5297e57a02daf82 Mon Sep 17 00:00:00 2001 From: Patrick Carlo-Hickman Date: Tue, 18 Sep 2018 03:36:25 +0000 Subject: [PATCH] [VarDumper] Fix global dump function return value for PHP7 --- .../VarDumper/Resources/functions/dump.php | 4 +- .../VarDumper/Tests/Dumper/FunctionsTest.php | 57 +++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 src/Symfony/Component/VarDumper/Tests/Dumper/FunctionsTest.php diff --git a/src/Symfony/Component/VarDumper/Resources/functions/dump.php b/src/Symfony/Component/VarDumper/Resources/functions/dump.php index 95d8bb5980..0e0e4d0435 100644 --- a/src/Symfony/Component/VarDumper/Resources/functions/dump.php +++ b/src/Symfony/Component/VarDumper/Resources/functions/dump.php @@ -17,8 +17,8 @@ if (!function_exists('dump')) { */ function dump($var) { - foreach (func_get_args() as $var) { - VarDumper::dump($var); + foreach (func_get_args() as $v) { + VarDumper::dump($v); } if (1 < func_num_args()) { diff --git a/src/Symfony/Component/VarDumper/Tests/Dumper/FunctionsTest.php b/src/Symfony/Component/VarDumper/Tests/Dumper/FunctionsTest.php new file mode 100644 index 0000000000..81ecdddc56 --- /dev/null +++ b/src/Symfony/Component/VarDumper/Tests/Dumper/FunctionsTest.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Tests\Dumper; + +use PHPUnit\Framework\TestCase; +use Symfony\Component\VarDumper\Cloner\VarCloner; +use Symfony\Component\VarDumper\Dumper\CliDumper; +use Symfony\Component\VarDumper\VarDumper; + +class FunctionsTest extends TestCase +{ + public function testDumpReturnsFirstArg() + { + $this->setupVarDumper(); + + $var1 = 'a'; + + ob_start(); + $return = dump($var1); + $out = ob_get_clean(); + + $this->assertEquals($var1, $return); + } + + public function testDumpReturnsAllArgsInArray() + { + $this->setupVarDumper(); + + $var1 = 'a'; + $var2 = 'b'; + $var3 = 'c'; + + ob_start(); + $return = dump($var1, $var2, $var3); + $out = ob_get_clean(); + + $this->assertEquals(array($var1, $var2, $var3), $return); + } + + protected function setupVarDumper() + { + $cloner = new VarCloner(); + $dumper = new CliDumper('php://output'); + VarDumper::setHandler(function ($var) use ($cloner, $dumper) { + $dumper->dump($cloner->cloneVar($var)); + }); + } +}