Skip to content

Commit fad0d11

Browse files
committed
[DI] deprecates tag tagged in favor of tagged_iterator
1 parent 0c78413 commit fad0d11

File tree

14 files changed

+33
-11
lines changed

14 files changed

+33
-11
lines changed

src/Symfony/Component/DependencyInjection/CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ CHANGELOG
1616
* made `ServiceLocator` implement `ServiceProviderInterface`
1717
* deprecated support for non-string default env() parameters
1818
* added `%env(require:...)%` processor to `require()` a PHP file and use the value returned from it
19-
19+
* deprecated tag `tagged` in favour of `tagged_iterator`
20+
2021
4.2.0
2122
-----
2223

src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ private function convertParameters(array $parameters, $type, \DOMElement $parent
287287
$element->setAttribute('type', 'collection');
288288
$this->convertParameters($value, $type, $element, 'key');
289289
} elseif ($value instanceof TaggedIteratorArgument || ($value instanceof ServiceLocatorArgument && $tag = $value->getTaggedIteratorArgument())) {
290-
$element->setAttribute('type', $value instanceof TaggedIteratorArgument ? 'tagged' : 'tagged_locator');
290+
$element->setAttribute('type', $value instanceof TaggedIteratorArgument ? 'tagged_iterator' : 'tagged_locator');
291291
$element->setAttribute('tag', $tag->getTag());
292292

293293
if (null !== $tag->getIndexAttribute()) {

src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ private function dumpValue($value)
248248
}
249249
}
250250

251-
return new TaggedValue($value instanceof TaggedIteratorArgument ? 'tagged' : 'tagged_locator', $content);
251+
return new TaggedValue($value instanceof TaggedIteratorArgument ? 'tagged_iterator' : 'tagged_locator', $content);
252252
}
253253

254254
if ($value instanceof IteratorArgument) {

src/Symfony/Component/DependencyInjection/Loader/Configurator/ContainerConfigurator.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,16 @@ function iterator(array $values): IteratorArgument
117117
* Creates a lazy iterator by tag name.
118118
*/
119119
function tagged(string $tag, string $indexAttribute = null, string $defaultIndexMethod = null): TaggedIteratorArgument
120+
{
121+
@trigger_error('"tagged" tag is deprecated and will be removed in Symfony 5. Please use "tagged_iterator"', E_USER_DEPRECATED);
122+
123+
return new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod);
124+
}
125+
126+
/**
127+
* Creates a lazy iterator by tag name.
128+
*/
129+
function tagged_iterator(string $tag, string $indexAttribute = null, string $defaultIndexMethod = null): TaggedIteratorArgument
120130
{
121131
return new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod);
122132
}

src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -545,8 +545,14 @@ private function getArgumentsAsPhp(\DOMElement $node, $name, $file, $lowercase =
545545
}
546546
break;
547547
case 'tagged':
548+
case 'tagged_iterator':
548549
case 'tagged_locator':
549550
$type = $arg->getAttribute('type');
551+
552+
if ('tagged' === $type) {
553+
@trigger_error(sprintf('Type "%s" of Tag <%s> in "%s" is deprecated and will be removed in Symfony 5. Please use "tagged_iterator"', $type, $name, $file), E_USER_DEPRECATED);
554+
}
555+
550556
$forLocator = 'tagged_locator' === $type;
551557

552558
if (!$arg->getAttribute('tag')) {

src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -724,7 +724,11 @@ private function resolveServices($value, $file, $isParameter = false)
724724
throw new InvalidArgumentException(sprintf('"!service_locator" tag only accepts maps of "@service" references in "%s".', $file));
725725
}
726726
}
727-
if (\in_array($value->getTag(), ['tagged', 'tagged_locator'], true)) {
727+
if (\in_array($value->getTag(), ['tagged', 'tagged_iterator', 'tagged_locator'], true)) {
728+
if ('tagged' === $value->getTag()) {
729+
@trigger_error('"!tagged" tag is deprecated and will be removed in Symfony 5. Please use "!tagged_iterator"', E_USER_DEPRECATED);
730+
}
731+
728732
$forLocator = 'tagged_locator' === $value->getTag();
729733

730734
if (\is_string($argument) && $argument) {

src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@
265265
<xsd:enumeration value="iterator" />
266266
<xsd:enumeration value="service_locator" />
267267
<xsd:enumeration value="tagged" />
268+
<xsd:enumeration value="tagged_iterator" />
268269
<xsd:enumeration value="tagged_locator" />
269270
</xsd:restriction>
270271
</xsd:simpleType>

src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/anonymous.expected.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ services:
77
listener_aggregator:
88
class: Bar\FooClass
99
public: true
10-
arguments: [!tagged listener]
10+
arguments: [!tagged_iterator listener]
1111
.2_stdClass~%s:
1212
class: stdClass
1313
public: false

src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/services9.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@
128128

129129
$s->set('tagged_iterator', 'Bar')
130130
->public()
131-
->args([tagged('foo')]);
131+
->args([tagged_iterator('foo')]);
132132

133133
$s->set('runtime_error', 'stdClass')
134134
->args([new Reference('errored_definition', ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE)])

src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@
142142
<tag name="foo"/>
143143
</service>
144144
<service id="tagged_iterator" class="Bar" public="true">
145-
<argument type="tagged" tag="foo"/>
145+
<argument type="tagged_iterator" tag="foo"/>
146146
</service>
147147
<service id="runtime_error" class="stdClass" public="true">
148148
<argument type="service" id="errored_definition"/>

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy