bug #29894 [DependencyInjection] the string "0" is a valid service identifier (xabbuh)

This PR was merged into the 3.4 branch.

Discussion
----------

[DependencyInjection] the string "0" is a valid service identifier

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #29854
| License       | MIT
| Doc PR        |

Commits
-------

caca373383 the string "0" is a valid service identifier
This commit is contained in:
Fabien Potencier 2019-01-15 15:10:59 +01:00
commit 0f0c30a1c3
2 changed files with 6 additions and 2 deletions

View File

@ -496,7 +496,7 @@ class XmlFileLoader extends FileLoader
switch ($arg->getAttribute('type')) {
case 'service':
if (!$arg->getAttribute('id')) {
if ('' === $arg->getAttribute('id')) {
throw new InvalidArgumentException(sprintf('Tag "<%s>" with type="service" has no or empty "id" attribute in "%s".', $name, $file));
}
if ($arg->hasAttribute('strict')) {
@ -549,7 +549,7 @@ class XmlFileLoader extends FileLoader
* @param \DOMNode $node
* @param mixed $name
*
* @return array
* @return \DOMElement[]
*/
private function getChildren(\DOMNode $node, $name)
{

View File

@ -61,5 +61,9 @@
</service>
<service id="alias_for_foo" alias="foo" />
<service id="another_alias_for_foo" alias="foo" public="false" />
<service id="0" class="FooClass" />
<service id="1" class="FooClass">
<argument type="service" id="0" />
</service>
</services>
</container>