<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Console\Helper; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\VarDumper\Cloner\ClonerInterface; use Symfony\Component\VarDumper\Cloner\VarCloner; use Symfony\Component\VarDumper\Dumper\CliDumper; /** * @author Roland Franssen <franssen.roland@gmail.com> */ final class Dumper { private OutputInterface $output; private ?CliDumper $dumper; private ?ClonerInterface $cloner; private \Closure $handler; public function __construct(OutputInterface $output, CliDumper $dumper = null, ClonerInterface $cloner = null) { $this->output = $output; $this->dumper = $dumper; $this->cloner = $cloner; if (class_exists(CliDumper::class)) { $this->handler = function ($var): string { $dumper = $this->dumper ??= new CliDumper(null, null, CliDumper::DUMP_LIGHT_ARRAY | CliDumper::DUMP_COMMA_SEPARATOR); $dumper->setColors($this->output->isDecorated()); return rtrim($dumper->dump(($this->cloner ??= new VarCloner())->cloneVar($var)->withRefHandles(false), true)); }; } else { $this->handler = function ($var): string { return match (true) { null === $var => 'null', true === $var => 'true', false === $var => 'false', \is_string($var) => '"'.$var.'"', default => rtrim(print_r($var, true)), }; }; } } public function __invoke(mixed $var): string { return ($this->handler)($var); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
DebugFormatterHelper.php | File | 3.34 KB | 0644 |
|
DescriptorHelper.php | File | 2.51 KB | 0644 |
|
Dumper.php | File | 1.91 KB | 0644 |
|
FormatterHelper.php | File | 2.26 KB | 0644 |
|
Helper.php | File | 4.46 KB | 0644 |
|
HelperInterface.php | File | 851 B | 0644 |
|
HelperSet.php | File | 1.86 KB | 0644 |
|
InputAwareHelper.php | File | 740 B | 0644 |
|
OutputWrapper.php | File | 3.01 KB | 0644 |
|
ProcessHelper.php | File | 4.77 KB | 0644 |
|
ProgressBar.php | File | 19.14 KB | 0644 |
|
ProgressIndicator.php | File | 7.08 KB | 0644 |
|
QuestionHelper.php | File | 19.71 KB | 0644 |
|
SymfonyQuestionHelper.php | File | 3.23 KB | 0644 |
|
Table.php | File | 31.46 KB | 0644 |
|
TableCell.php | File | 1.79 KB | 0644 |
|
TableCellStyle.php | File | 2.29 KB | 0644 |
|
TableRows.php | File | 620 B | 0644 |
|
TableSeparator.php | File | 556 B | 0644 |
|
TableStyle.php | File | 12.81 KB | 0644 |
|