Skip to content

[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 our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 10, 2021

Conversation

marek-binkowski-sim
Copy link
Contributor

@marek-binkowski-sim marek-binkowski-sim commented Jun 3, 2021

[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]

Q A
Branch? 5.2
Bug fix? yes
New feature? no
Deprecations? no
Tickets Fix #41497
License MIT
Doc PR -

[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:

if ($this->choiceListFactory instanceof CachingFactoryDecorator) {
    return;
}

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.

$this->translator = $translator;

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:

new Type\ChoiceType($this->choiceListFactory, $this->translator),

@carsonbot
Copy link

Hey!

I see that this is your first PR. That is great! Welcome!

Symfony has a contribution guide which I suggest you to read.

In short:

  • Always add tests
  • Keep backward compatibility (see https://symfony.com/bc).
  • Bug fixes must be submitted against the lowest maintained branch where they apply (see https://symfony.com/releases)
  • Features and deprecations must be submitted against the 5.4 branch.

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!
If this PR is merged in a lower version branch, it will be merged up to all maintained branches within a few days.

I am going to sit back now and wait for the reviews.

Cheers!

Carsonbot

@marek-binkowski-sim marek-binkowski-sim changed the title [Form] Fix ChoiceType Extension to effectively set and use translator [Form] Fix ChoiceType to effectively set and use translator Jun 3, 2021
@carsonbot
Copy link

Hey!

I think @fancyweb has recently worked with this code. Maybe they can help review this?

Cheers!

Carsonbot

@marek-binkowski-sim marek-binkowski-sim force-pushed the ticket_41497 branch 2 times, most recently from 00dc970 to 8a3d977 Compare June 9, 2021 20:47
@fabpot fabpot modified the milestones: 5.2, 5.3 Jul 26, 2021
…ator

ChoiceType constructor line order changed to set translator before early return; CoreExtension injects translator to ChoiceType
@xabbuh xabbuh changed the base branch from 5.2 to 5.3 October 8, 2021 13:09
@stof
Copy link
Member

stof commented Oct 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
Copy link
Member

fabpot commented Oct 10, 2021

@stof Because we are trying to limit the changes done in already released branches.

@fabpot
Copy link
Member

fabpot commented Oct 10, 2021

Thank you @marek-binkowski-sim.

@fabpot fabpot merged commit cf8d43e into symfony:5.3 Oct 10, 2021
@marek-binkowski-sim marek-binkowski-sim deleted the ticket_41497 branch October 10, 2021 19:56
@fabpot fabpot mentioned this pull request Oct 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants