Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d04fdee

Browse files
committed
bug symfony#32335 [Form] Names for buttons should start with lowercase (mcfedr)
This PR was merged into the 4.3 branch. Discussion ---------- [Form] Names for buttons should start with lowercase | Q | A | ------------- | --- | Branch? | 4.3 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | N/A | License | MIT | Doc PR | N/A This fix changes the messages related to the changes in symfony#28969 - the message used to state that names should start with a letter, a digit ... - so I got a confusing message: ``` Using names for buttons that do not start with a letter, a digit, or an underscore is deprecated since Symfony 4.3 and will throw an exception in 5.0 ("Search" given).' ``` Which made me find the message, look at the regex that was used, and work out that actually it should start with a lowercase letter, and hence this PR - where I assume there is a reason that the name must start with lowercase letters. Commits ------- f65524e Names for buttons should start with lowercase
2 parents 29a54c5 + f65524e commit d04fdee

File tree

5 files changed

+12
-4
lines changed

5 files changed

+12
-4
lines changed

UPGRADE-4.3.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ Form
9696
----
9797

9898
* Using the `format` option of `DateType` and `DateTimeType` when the `html5` option is enabled is deprecated.
99-
* Using names for buttons that do not start with a letter, a digit, or an underscore is deprecated and will lead to an
99+
* Using names for buttons that do not start with a lowercase letter, a digit, or an underscore is deprecated and will lead to an
100100
exception in 5.0.
101101
* Using names for buttons that do not contain only letters, digits, underscores, hyphens, and colons is deprecated and
102102
will lead to an exception in 5.0.

UPGRADE-5.0.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ Form
110110
----
111111

112112
* Removed support for using the `format` option of `DateType` and `DateTimeType` when the `html5` option is enabled.
113-
* Using names for buttons that do not start with a letter, a digit, or an underscore leads to an exception.
113+
* Using names for buttons that do not start with a lowercase letter, a digit, or an underscore leads to an exception.
114114
* Using names for buttons that do not contain only letters, digits, underscores, hyphens, and colons leads to an
115115
exception.
116116
* Using the `date_format`, `date_widget`, and `time_widget` options of the `DateTimeType` when the `widget` option is

src/Symfony/Component/Form/ButtonBuilder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public function __construct(?string $name, array $options = [])
6363

6464
if (preg_match('/^([^a-z0-9_].*)?(.*[^a-zA-Z0-9_\-:].*)?$/D', $name, $matches)) {
6565
if (isset($matches[1])) {
66-
@trigger_error(sprintf('Using names for buttons that do not start with a letter, a digit, or an underscore is deprecated since Symfony 4.3 and will throw an exception in 5.0 ("%s" given).', $name), E_USER_DEPRECATED);
66+
@trigger_error(sprintf('Using names for buttons that do not start with a lowercase letter, a digit, or an underscore is deprecated since Symfony 4.3 and will throw an exception in 5.0 ("%s" given).', $name), E_USER_DEPRECATED);
6767
}
6868
if (isset($matches[2])) {
6969
@trigger_error(sprintf('Using names for buttons that do not contain only letters, digits, underscores ("_"), hyphens ("-") and colons (":") ("%s" given) is deprecated since Symfony 4.3 and will throw an exception in 5.0.', $name), E_USER_DEPRECATED);

src/Symfony/Component/Form/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ CHANGELOG
66

77
* added a `symbol` option to the `PercentType` that allows to disable or customize the output of the percent character
88
* Using the `format` option of `DateType` and `DateTimeType` when the `html5` option is enabled is deprecated.
9-
* Using names for buttons that do not start with a letter, a digit, or an underscore is deprecated and will lead to an
9+
* Using names for buttons that do not start with a lowercase letter, a digit, or an underscore is deprecated and will lead to an
1010
exception in 5.0.
1111
* Using names for buttons that do not contain only letters, digits, underscores, hyphens, and colons is deprecated and
1212
will lead to an exception in 5.0.

src/Symfony/Component/Form/Tests/ButtonBuilderTest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@ public function testNameContainingIllegalCharacters()
4747
$this->assertInstanceOf('\Symfony\Component\Form\ButtonBuilder', new ButtonBuilder('button[]'));
4848
}
4949

50+
/**
51+
* @group legacy
52+
*/
53+
public function testNameStartingWithIllegalCharacters()
54+
{
55+
$this->assertInstanceOf('\Symfony\Component\Form\ButtonBuilder', new ButtonBuilder('Button'));
56+
}
57+
5058
public function getInvalidNames()
5159
{
5260
return [

0 commit comments

Comments
 (0)