| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | <?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 $output;    private $dumper;    private $cloner;    private $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 ?? $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 ?? $this->cloner = new VarCloner())->cloneVar($var)->withRefHandles(false), true));            };        } else {            $this->handler = function ($var): string {                switch (true) {                    case null === $var:                        return 'null';                    case true === $var:                        return 'true';                    case false === $var:                        return 'false';                    case \is_string($var):                        return '"'.$var.'"';                    default:                        return rtrim(print_r($var, true));                }            };        }    }    public function __invoke($var): string    {        return ($this->handler)($var);    }}
 |