-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[FrameworkBundle] Ensure Email
class exists before using it
#60373
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
Conversation
Hey! Thanks for your PR. You are targeting branch "6.4" but it seems your PR description refers to branch "6.4,". Cheers! Carsonbot |
@@ -1067,7 +1067,7 @@ private function addValidationSection(ArrayNodeDefinition $rootNode, callable $e | |||
->validate()->castToArray()->end() | |||
->end() | |||
->scalarNode('translation_domain')->defaultValue('validators')->end() | |||
->enumNode('email_validation_mode')->values(Email::VALIDATION_MODES + ['loose'])->end() | |||
->enumNode('email_validation_mode')->values((class_exists(Email::class) ? Email::VALIDATION_MODES : ['html5-allow-no-tld', 'html5', 'strict']) + ['loose'])->end() |
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.
Since I believe email_validation_mode
won't be used if symfony/mailer
is not installed, maybe we can just keep it empty:
->enumNode('email_validation_mode')->values((class_exists(Email::class) ? Email::VALIDATION_MODES : ['html5-allow-no-tld', 'html5', 'strict']) + ['loose'])->end() | |
->enumNode('email_validation_mode')->values(class_exists(Email::class) ? Email::VALIDATION_MODES + ['loose'] : [])->end() |
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.
I would keep it the way you changed it here for the same reason we kept loose
in #60365, let's better be defensive here as we don't know how people configured their applications
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.
After upgrading to Symfony 7.2.7 we observe this error:
In EnumNode.php line 82:
The value "loose" is not allowed for path "framework.validation.email_valid
ation_mode". Permissible values: "html5-allow-no-tld", "html5", "strict"
Error: Process completed with exit code 1.
Our configuration is:
framework:
...
validation:
...
email_validation_mode: loose
From bin/console config:dump-reference framework
we observe:
framework:
...
validation:
...
email_validation_mode: html5 # One of "html5-allow-no-tld"; "html5"; "strict"
I think this should use array_merge()
instead of the +
operator to correctly merge the arrays.
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.
can you please create a new issue or a pull request? Thanks
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.
Sure, will open a PR.
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.
Thank you @Kocal. |
… mode (rhel-eo) This PR was squashed before being merged into the 6.4 branch. Discussion ---------- [FrameworkBundle] Fix allow `loose` as an email validation mode | Q | A | ------------- | --- | Branch? | 6.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | License | MIT After upgrading to Symfony 7.2.7 we observe this error: ``` In EnumNode.php line 82: The value "loose" is not allowed for path "framework.validation.email_valid ation_mode". Permissible values: "html5-allow-no-tld", "html5", "strict" ``` Our configuration is: ```yaml framework: ... validation: ... email_validation_mode: loose ``` From `bin/console config:dump-reference framework` we observe: ``` framework: ... validation: ... email_validation_mode: html5 # One of "html5-allow-no-tld"; "html5"; "strict" ``` After this change, the above error no longer occurs and expected allowed values are observed: ``` $ php bin/console config:dump-reference framework framework: ... validation: ... email_validation_mode: ~ # One of "html5-allow-no-tld"; "html5"; "strict"; "loose" ``` See #60373 and #60365 where the previous code was introduced. Commits ------- 23b9c4f [FrameworkBundle] Fix allow `loose` as an email validation mode
I think the dev-tests suite from Symfony UX broke after #60365, see: