[DependencyInjection] Deprecate numeric parameter names #47683
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While trying to use
'.' !== $key[0]
instead ofstr_starts_with($key, '.')
in #47680, I noticed some tests were failing due to the usage of numeric parameter names in the fixtures.This leads to inconsistent behavior since the following code:
$parameterBag->set(10, 10)
, will first cast the name10
to string because of the method signature, but will then cast back to integer when using it as an array key in https://github.com/symfony/symfony/blob/6.2/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php#L89.Because Symfony does not use strict types, it can be really tricky.
This PR propose to deprecate using such names to be able to properly throw in 7.0.