Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork9.7k
[Form] Fix ChoiceType to effectively set and use translator#41534
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 commentedJun 3, 2021
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 commentedJun 4, 2021
Hey! I think@fancyweb has recently worked with this code. Maybe they can help review this? Cheers! Carsonbot |
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
00dc970 to8a3d977CompareUh oh!
There was an error while loading.Please reload this page.
8a3d977 tof378d8fCompare…atorChoiceType constructor line order changed to set translator before early return; CoreExtension injects translator to ChoiceType
f378d8f to2fdec3eComparestof commentedOct 8, 2021
@fabpot why have you asked to revert the constructor typehint ? I don't see the reason to throw a TypeError ourselves instead of letting PHP doing it. |
fabpot commentedOct 10, 2021
@stof Because we are trying to limit the changes done in already released branches. |
fabpot commentedOct 10, 2021
Thank you@marek-binkowski-sim. |
Uh oh!
There was an error while loading.Please reload this page.
[Component][Form][ChoiceType] constructor line order changed to set translator before early return;
[Component][Form][CoreExtension] a second argument $translator has been added for instantiation of [Component][Form][ChoiceType]
[Component][Form][ChoiceType] The bug probably came to life after a merge of two commits from different branches: 5.1 and 4.4. The commit in branch 5.1 contained a conditional early return related with the choiceListFactory:
The code from the branch 4.4 was there to set the translator, but it wasn't effective when the constructor early returned in the line above.
The fix was to switch [Component][Form][ChoiceType] constructor lines related with the translator above the early return related with choiceListFactory.
As a second parameter $translator has been added to the [Component][Form][ChoiceType] constructor, the translator needs to be injected by the CoreExtension so that ChoiceType could set and use it. This is why a second argument is added now in [Component][Form][CoreExtension] loadTypes for Type\ChoiceType: