Skip to content

Commit 0acdcb8

Browse files
macintoshplusnicolas-grekas
authored andcommitted
Dump Valid constaints on debug command #46544
1 parent 77533f1 commit 0acdcb8

File tree

4 files changed

+154
-66
lines changed

4 files changed

+154
-66
lines changed

Command/DebugCommand.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,12 @@
2222
use Symfony\Component\Finder\Exception\DirectoryNotFoundException;
2323
use Symfony\Component\Finder\Finder;
2424
use Symfony\Component\Validator\Constraint;
25+
use Symfony\Component\Validator\Mapping\AutoMappingStrategy;
26+
use Symfony\Component\Validator\Mapping\CascadingStrategy;
2527
use Symfony\Component\Validator\Mapping\ClassMetadataInterface;
2628
use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface;
29+
use Symfony\Component\Validator\Mapping\GenericMetadata;
30+
use Symfony\Component\Validator\Mapping\TraversalStrategy;
2731

2832
/**
2933
* A console command to debug Validators information.
@@ -161,6 +165,31 @@ private function getPropertyData(ClassMetadataInterface $classMetadata, string $
161165

162166
$propertyMetadata = $classMetadata->getPropertyMetadata($constrainedProperty);
163167
foreach ($propertyMetadata as $metadata) {
168+
$autoMapingStrategy = 'Not supported';
169+
if ($metadata instanceof GenericMetadata) {
170+
switch ($metadata->getAutoMappingStrategy()) {
171+
case AutoMappingStrategy::ENABLED: $autoMapingStrategy = 'Enabled'; break;
172+
case AutoMappingStrategy::DISABLED: $autoMapingStrategy = 'Disabled'; break;
173+
case AutoMappingStrategy::NONE: $autoMapingStrategy = 'None'; break;
174+
}
175+
}
176+
$traversalStrategy = 'None';
177+
if (TraversalStrategy::TRAVERSE === $metadata->getTraversalStrategy()) {
178+
$traversalStrategy = 'Traverse';
179+
}
180+
if (TraversalStrategy::IMPLICIT === $metadata->getTraversalStrategy()) {
181+
$traversalStrategy = 'Implicit';
182+
}
183+
184+
$data[] = [
185+
'class' => 'property options',
186+
'groups' => [],
187+
'options' => [
188+
'cascadeStrategy' => CascadingStrategy::CASCADE === $metadata->getCascadingStrategy() ? 'Cascade' : 'None',
189+
'autoMappingStrategy' => $autoMapingStrategy,
190+
'traversalStrategy' => $traversalStrategy,
191+
],
192+
];
164193
foreach ($metadata->getConstraints() as $constraint) {
165194
$data[] = [
166195
'class' => \get_class($constraint),

0 commit comments

Comments
 (0)