diff --git a/src/Symfony/Component/Validator/DataCollector/ValidatorDataCollector.php b/src/Symfony/Component/Validator/DataCollector/ValidatorDataCollector.php index 02c672191e..d2b3f46262 100644 --- a/src/Symfony/Component/Validator/DataCollector/ValidatorDataCollector.php +++ b/src/Symfony/Component/Validator/DataCollector/ValidatorDataCollector.php @@ -19,8 +19,7 @@ use Symfony\Component\HttpKernel\DataCollector\LateDataCollectorInterface; use Symfony\Component\Validator\Validator\TraceableValidator; use Symfony\Component\VarDumper\Caster\Caster; use Symfony\Component\VarDumper\Caster\ClassStub; -use Symfony\Component\VarDumper\Cloner\Data; -use Symfony\Component\VarDumper\Cloner\VarCloner; +use Symfony\Component\VarDumper\Cloner\Stub; /** * @author Maxime Steinhausser @@ -28,7 +27,6 @@ use Symfony\Component\VarDumper\Cloner\VarCloner; class ValidatorDataCollector extends DataCollector implements LateDataCollectorInterface { private $validator; - private $cloner; public function __construct(TraceableValidator $validator) { @@ -77,29 +75,26 @@ class ValidatorDataCollector extends DataCollector implements LateDataCollectorI return 'validator'; } - /** - * {@inheritdoc} - */ - protected function cloneVar($var) + protected function getCasters() { - if ($var instanceof Data) { - return $var; - } + return parent::getCasters() + array( + \Exception::class => function (\Exception $e, array $a, Stub $s) { + foreach (array("\0Exception\0previous", "\0Exception\0trace") as $k) { + if (isset($a[$k])) { + unset($a[$k]); + ++$s->cut; + } + } - if (null === $this->cloner) { - $this->cloner = new VarCloner(); - $this->cloner->setMaxItems(-1); - $this->cloner->addCasters(array( - FormInterface::class => function (FormInterface $f, array $a) { - return array( - Caster::PREFIX_VIRTUAL.'name' => $f->getName(), - Caster::PREFIX_VIRTUAL.'type_class' => new ClassStub(get_class($f->getConfig()->getType()->getInnerType())), - Caster::PREFIX_VIRTUAL.'data' => $f->getData(), - ); - }, - )); - } - - return $this->cloner->cloneVar($var, Caster::EXCLUDE_VERBOSE); + return $a; + }, + FormInterface::class => function (FormInterface $f, array $a) { + return array( + Caster::PREFIX_VIRTUAL.'name' => $f->getName(), + Caster::PREFIX_VIRTUAL.'type_class' => new ClassStub(get_class($f->getConfig()->getType()->getInnerType())), + Caster::PREFIX_VIRTUAL.'data' => $f->getData(), + ); + }, + ); } } diff --git a/src/Symfony/Component/Validator/composer.json b/src/Symfony/Component/Validator/composer.json index 69b39c9c82..a050573d82 100644 --- a/src/Symfony/Component/Validator/composer.json +++ b/src/Symfony/Component/Validator/composer.json @@ -22,8 +22,8 @@ }, "require-dev": { "symfony/http-foundation": "~2.8|~3.0|~4.0", - "symfony/http-kernel": "~2.8|~3.0|~4.0.0", - "symfony/var-dumper": "~3.3|~4.0.0", + "symfony/http-kernel": "^3.3.5|~4.0", + "symfony/var-dumper": "~3.3|~4.0", "symfony/intl": "^2.8.18|^3.2.5|~4.0", "symfony/yaml": "~3.3|~4.0", "symfony/config": "~2.8|~3.0|~4.0", @@ -38,6 +38,7 @@ "conflict": { "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", "symfony/dependency-injection": "<3.3", + "symfony/http-kernel": "<3.3.5", "symfony/yaml": "<3.3" }, "suggest": {