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

Skip to content

Commit c953ba8

Browse files
committed
minor #34097 [Validator] Ensure numeric subpaths do not cause errors on PHP 7.4 (alexpott)
This PR was squashed before being merged into the 3.4 branch (closes #34097). Discussion ---------- [Validator] Ensure numeric subpaths do not cause errors on PHP 7.4 | Q | A | ------------- | --- | Branch? | 3.4 | Bug fix? | yes | New feature? | no <!-- please update src/**/CHANGELOG.md files --> | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tickets | Fix #... <!-- prefix each issue number with "Fix #", if any --> | License | MIT | Doc PR | symfony/symfony-docs#... <!-- required for new features --> Drupal is testing on PHP7.4 and hitting a problem with the line `if ('[' === $subPath[0]) {` because `$subPath` is not a string. We're already doing string casting in the method so we could do it once and be done. Note this is not a problem on the master branch / SF5 because of primitive typehinting. Without this fix on PHP7.4 you see errors like... ``` 1) Symfony\Component\Validator\Tests\Util\PropertyPathTest::testAppend with data set #5 ('0', 1, '0.1', 'Numeric subpaths do not cause...rrors.') Trying to access array offset on value of type int ``` Commits ------- 6244a1e [Validator] Ensure numeric subpaths do not cause errors on PHP 7.4
2 parents 278280a + 6244a1e commit c953ba8

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

src/Symfony/Component/Validator/Tests/Util/PropertyPathTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public function provideAppendPaths()
3232
['foo', 'bar', 'foo.bar', 'It append the subPath to the basePath'],
3333
['foo', '[bar]', 'foo[bar]', 'It does not include the dot separator if subPath uses the array notation'],
3434
['0', 'bar', '0.bar', 'Leading zeros are kept.'],
35+
['0', 1, '0.1', 'Numeric subpaths do not cause PHP 7.4 errors.'],
3536
];
3637
}
3738
}

src/Symfony/Component/Validator/Util/PropertyPath.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,13 @@ class PropertyPath
3636
*/
3737
public static function append($basePath, $subPath)
3838
{
39-
if ('' !== (string) $subPath) {
39+
$subPath = (string) $subPath;
40+
if ('' !== $subPath) {
4041
if ('[' === $subPath[0]) {
4142
return $basePath.$subPath;
4243
}
4344

44-
return '' !== (string) $basePath ? $basePath.'.'.$subPath : $subPath;
45+
return '' !== $basePath ? $basePath.'.'.$subPath : $subPath;
4546
}
4647

4748
return $basePath;

0 commit comments

Comments
 (0)