Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork9.7k
[Validator] Dump Valid constraints on debug command#48840
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
carsonbot commentedDec 31, 2022
Hey! I see that this is your first PR. That is great! Welcome! Symfony has acontribution guide which I suggest you to read. In short:
Review the GitHub status checks of your pull request and try to solve the reported issues. If some tests are failing, try to see if they are failing because of this change. When two Symfony core team members approve this change, it will be merged and you will become an official Symfony contributor! I am going to sit back now and wait for the reviews. Cheers! Carsonbot |
carsonbot commentedJan 1, 2023
Hey! I think@loic425 has recently worked with this code. Maybe they can help review this? Cheers! Carsonbot |
| if (CascadingStrategy::CASCADE ===$metadata->getCascadingStrategy()) { | ||
| $constraint =newValid([], [],null, TraversalStrategy::IMPLICIT ===$metadata->getTraversalStrategy()); | ||
| $data[] = [ | ||
| 'class' => Valid::class, | ||
| 'groups' => [$constraint::DEFAULT_GROUP], | ||
| 'options' =>$this->getConstraintOptions($constraint), | ||
| ]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Hey,@macintoshplus thanks for your this PR! It's working great! But are we sure only Valid constraints have the CascadingStrategy::CASCADE? For example, if you create custom constraints that extend the Valid constraint you gonna have this CascadingStrategy::CASCADE, but you don't want to add here the Valid constraint but the custom one.
macintoshplusJan 2, 2023 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
It's true, if you extendValid annotation without changing anything, the behavior is the same as using theValid constraint. And, your custom constraint is changed toValid on debug command. The debug command cannot know the original constraint class name because Symfony has removed it.
But if you add some options or groups, the original constraint is kept by Symfony and can be displayed on the dump command output.
Symfony changes property mapping configuration withEnableAutoMapping andDisableAutoMapping (I cannot add the constraint in debug command output because thegetAutoMappingStrategy function is not defined inMetadataInterface).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
@macintoshplus Maybe you can check if the metadata is an instance of ClassMetadata and then getAutoMappingStragegy
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
It is the same forCascade andClassMetadatahttps://github.com/symfony/symfony/blob/5.4/src/Symfony/Component/Validator/Mapping/ClassMetadata.php#L210
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
alexislefebvre commentedJan 3, 2023
Nitpicking: the title of this PR mentions “constaints” instead of “constraints”. |
nicolas-grekas commentedApr 18, 2023
What can we do here to unlock the PR? |
macintoshplus commentedApr 18, 2023
Hi Nicolas, Thank you for your interest in this PR. What way to display the validation constraint that changes parameters and has been removed by Symfony? I have tried to display IMHO two choices:
I'm available on Symfony Slack (Jean-Baptiste N.) or Twitter (@jbnahan69) to discuss this in French if you want. |
macintoshplus commentedJul 11, 2023
I have changed the property options displayed on debug output. The 3 options (cascadeStrategy, autoMappingStrategy, traversalStrategy) it's now visible before property validators. |
loic425 commentedJul 11, 2023 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
@nicolas-grekas I think we needthis PR first to be sure of the behaviour. |
…d tests (loic425)This PR was squashed before being merged into the 5.4 branch.Discussion----------[Validator] Do not mock metadata factory on debug command tests| Q | A| ------------- | ---| Branch? | 5.4| Bug fix? | not really, but it will be usefull to fix that command| New feature? | no| Deprecations? | no| Tickets || License | MIT| Doc PR |<!--Replace this notice by a short README for your feature/bugfix.This will help reviewers and should be a good start for the documentation.Additionally (seehttps://symfony.com/releases): - Always add tests and ensure they pass. - Bug fixes must be submitted against the lowest maintained branch where they apply (lowest branches are regularly merged to upper ones so they get the fixes too). - Features and deprecations must be submitted against the latest branch. - For new features, provide some code snippets to help understand usage. - Changelog entry should followhttps://symfony.com/doc/current/contributing/code/conventions.html#writing-a-changelog-entry - Never break backward compatibility (seehttps://symfony.com/bc).-->Before#48840 I think this one could improve the tests.Commits-------de6d15f [Validator] Do not mock metadata factory on debug command tests
macintoshplus commentedJul 16, 2023
@loic425,@nicolas-grekas I have rebased this PR and update tests. |
nicolas-grekas commentedAug 14, 2023
Thank you@macintoshplus. |
Uh oh!
There was an error while loading.Please reload this page.
The command
debug:validatordoesn't dump theValidconstraints with the default group.The
Validconstraints with default group change the propertyCascadingStrategyand theTraversalStrategyon property metadata.This patch adds the
Validconstraint on debug output if theCascadingStrategyis the same asCASCADE.