Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[Serializer] Replace the MissingConstructorArgumentsException class with MissingConstructorArgumentException#49013

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

Conversation

@HypeMC
Copy link
Member

@HypeMCHypeMC commentedJan 17, 2023
edited
Loading

QA
Branch?6.3
Bug fix?no
New feature?yes
Deprecations?yes
Tickets-
LicenseMIT
Doc PR-

Followup to#42712.

Currently only the missing arguments are saved in theMissingConstructorArgumentsException, so there's no way of knowing which class is missing those arguments when nested objects are being deserialized. This PR adds this information to the exception.

Also, while working on this I've noticed that the$missingArguments argument accepts an array of missing arguments, but only one is ever passed. I'm not sure if this was done intentionally or by accident, but I've changed it so that only one is expected. Please let me know if this change is ok.

UPDATE:
I've added a newMissingConstructorArgumentException class which accepts only one argument and the class name and deprecated theMissingConstructorArgumentsException class. However, since the main goal of this PR is to add the class to the exception, I can revert the renaming part if you think the change is not worth it.

@HypeMCHypeMCforce-pushed theclass-in-missingconstructorargumentsexception branch 2 times, most recently from73490be tof03c264CompareJanuary 21, 2023 13:00
@nicolas-grekasnicolas-grekas changed the title[Serializer] Save missing arguments class inMissingConstructorArgumentsException[Serializer] Replace the MissingConstructorArgumentsException class with MissingConstructorArgumentExceptionJan 26, 2023
@HypeMCHypeMCforce-pushed theclass-in-missingconstructorargumentsexception branch 2 times, most recently from6e090a0 to93abdbbCompareJanuary 26, 2023 15:01
@HypeMCHypeMCforce-pushed theclass-in-missingconstructorargumentsexception branch from93abdbb tob377c12CompareJanuary 26, 2023 15:11
@nicolas-grekas
Copy link
Member

Thank you@HypeMC.

@nicolas-grekasnicolas-grekas merged commit7ed43d1 intosymfony:6.3Feb 23, 2023
@HypeMCHypeMC deleted the class-in-missingconstructorargumentsexception branchFebruary 23, 2023 18:11
nicolas-grekas added a commit that referenced this pull requestApr 21, 2023
…rning missing argument one by one (ktherage)This PR was squashed before being merged into the 6.3 branch.Discussion----------[Serializer] Fix MissingConstructorArgumentsException returning missing argument one by one| Q             | A| ------------- | ---| Branch?       | 6.3| Bug fix?      | yes| New feature?  | no| Deprecations? | no| Tickets       | -| License       | MIT| Doc PR        | -This PR is an improvment of#49013 andfix#42712.She aims to fix the problem reported in#49013 indicating that the method `getMissingConstructorArguments()` of `\Symfony\Component\Serializer\Exception\MissingConstructorArgumentsException` class introduced in#42712 is returning only one missing arguments when there's more than one missing.Commits-------43d028d [Serializer] Fix MissingConstructorArgumentsException returning missing argument one by one
@fabpotfabpot mentioned this pull requestMay 1, 2023
nicolas-grekas added a commit that referenced this pull requestOct 17, 2023
… argument (HypeMC)This PR was squashed before being merged into the 5.4 branch.Discussion----------[Serializer] Fix collecting only first missing constructor argument| Q             | A| ------------- | ---| Branch?       | 5.4| Bug fix?      | yes| New feature?  | no| Deprecations? | no| Tickets       | -| License       | MITAlternative to#51866, sort of followup to#49832Currently on 5.4 only the first exception is added to the `not_normalizable_value_exceptions` array when `COLLECT_DENORMALIZATION_ERRORS` is `true` or only the first argument is mentioned in the `MissingConstructorArgumentsException` when it is `false`.On 6.3 however, the part with the `MissingConstructorArgumentsException` was fix with#49832, but the part with the `not_normalizable_value_exceptions` was overlooked.IMO this is inconsistent behavior as the two cases are actually the same thing with the only difference being that in one case an exception is thrown while in the other the errors are collected.I'm not sure if#51866 really qualifies as a bug or is actually more a feature, but the reason#49832 was merged onto 6.3 was because of the changes originally done in#49013, which itself was a feature.If#51866 does qualify as a bug then it would make sense to backport#49832 to 5.4 for consistency, which is what this PR does.The PR contains two commits:1) backport of#498322) alternative to#51866If#51866 does not qualify as a bug, the first commit can be drooped and the second one can be rebased with 6.4.PS I think it's easier to review the changes commit by commit.Commits-------0f398ce [Serializer] Fix collecting only first missing constructor argument
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@stofstofstof left review comments

@OskarStarkOskarStarkOskarStark left review comments

@mtarldmtarldmtarld requested changes

@nicolas-grekasnicolas-grekasnicolas-grekas approved these changes

@dunglasdunglasAwaiting requested review from dunglasdunglas is a code owner

Assignees

No one assigned

Projects

None yet

Milestone

6.3

Development

Successfully merging this pull request may close these issues.

6 participants

@HypeMC@nicolas-grekas@stof@OskarStark@mtarld@carsonbot

[8]ページ先頭

©2009-2025 Movatter.jp