Skip to content

Commit e7ce055

Browse files
Merge branch '4.4'
* 4.4: [DI] deprecates tag !tagged in favor of !tagged_iterator [FrameworkBundle] remove dead code
2 parents d0913f5 + 7f39f36 commit e7ce055

File tree

19 files changed

+79
-15
lines changed

19 files changed

+79
-15
lines changed

UPGRADE-4.4.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,27 @@ DependencyInjection
2424
my_service:
2525
factory: ['@factory_service', method]
2626
```
27+
* Deprecated `tagged` in favor of `tagged_iterator`
28+
29+
Before:
30+
```yaml
31+
services:
32+
App\Handler:
33+
tags: ['app.handler']
34+
35+
App\HandlerCollection:
36+
arguments: [!tagged app.handler]
37+
```
38+
39+
After:
40+
```yaml
41+
services:
42+
App\Handler:
43+
tags: ['app.handler']
44+
45+
App\HandlerCollection:
46+
arguments: [!tagged_iterator app.handler]
47+
```
2748

2849
HttpClient
2950
----------

UPGRADE-5.0.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,27 @@ DependencyInjection
8484
my_service:
8585
factory: ['@factory_service', method]
8686
```
87+
* Removed `tagged` in favor of `tagged_iterator`
88+
89+
Before:
90+
```yaml
91+
services:
92+
App\Handler:
93+
tags: ['app.handler']
94+
95+
App\HandlerCollection:
96+
arguments: [!tagged app.handler]
97+
```
98+
99+
After:
100+
```yaml
101+
services:
102+
App\Handler:
103+
tags: ['app.handler']
104+
105+
App\HandlerCollection:
106+
arguments: [!tagged_iterator app.handler]
107+
```
87108

88109
DoctrineBridge
89110
--------------

src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml

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

6262
<!-- transports -->
6363
<service id="messenger.transport_factory" class="Symfony\Component\Messenger\Transport\TransportFactory">
64-
<argument type="tagged" tag="messenger.transport_factory" />
64+
<argument type="tagged_iterator" tag="messenger.transport_factory" />
6565
</service>
6666

6767
<service id="messenger.transport.amqp.factory" class="Symfony\Component\Messenger\Transport\AmqpExt\AmqpTransportFactory">

src/Symfony/Bundle/FrameworkBundle/Resources/config/services.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,13 @@
7070
<service id="Symfony\Component\HttpFoundation\UrlHelper" alias="url_helper" />
7171

7272
<service id="cache_warmer" class="Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate" public="true">
73-
<argument type="tagged" tag="kernel.cache_warmer" />
73+
<argument type="tagged_iterator" tag="kernel.cache_warmer" />
7474
<argument>%kernel.debug%</argument>
7575
<argument>%kernel.cache_dir%/%kernel.container_class%Deprecations.log</argument>
7676
</service>
7777

7878
<service id="cache_clearer" class="Symfony\Component\HttpKernel\CacheClearer\ChainCacheClearer" public="true">
79-
<argument type="tagged" tag="kernel.cache_clearer" />
79+
<argument type="tagged_iterator" tag="kernel.cache_clearer" />
8080
</service>
8181

8282
<service id="kernel" synthetic="true" public="true" />
@@ -99,7 +99,7 @@
9999
</service>
100100

101101
<service id="config_cache_factory" class="Symfony\Component\Config\ResourceCheckerConfigCacheFactory">
102-
<argument type="tagged" tag="config_cache.resource_checker" />
102+
<argument type="tagged_iterator" tag="config_cache.resource_checker" />
103103
</service>
104104

105105
<service id="dependency_injection.config.container_parameters_resource_checker" class="Symfony\Component\DependencyInjection\Config\ContainerParametersResourceChecker">

src/Symfony/Component/DependencyInjection/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ CHANGELOG
1616
-----
1717

1818
* deprecated support for short factories and short configurators in Yaml
19+
* deprecated `tagged` in favor of `tagged_iterator`
1920

2021
4.3.0
2122
-----

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: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,20 @@ function iterator(array $values): IteratorArgument
115115

116116
/**
117117
* Creates a lazy iterator by tag name.
118+
*
119+
* @deprecated since Symfony 4.4, to be removed in 5.0, use "tagged_iterator" instead.
118120
*/
119121
function tagged(string $tag, string $indexAttribute = null, string $defaultIndexMethod = null): TaggedIteratorArgument
122+
{
123+
@trigger_error(__NAMESPACE__.'\tagged() is deprecated since Symfony 4.4 and will be removed in 5.0, use '.__NAMESPACE__.'\tagged_iterator() instead.', E_USER_DEPRECATED);
124+
125+
return new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod);
126+
}
127+
128+
/**
129+
* Creates a lazy iterator by tag name.
130+
*/
131+
function tagged_iterator(string $tag, string $indexAttribute = null, string $defaultIndexMethod = null): TaggedIteratorArgument
120132
{
121133
return new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod);
122134
}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,9 @@ private function getArgumentsAsPhp(\DOMElement $node, $name, $file, $lowercase =
545545
}
546546
break;
547547
case 'tagged':
548+
@trigger_error(sprintf('Type "%s" of tag <%s> in "%s" is deprecated since Symfony 4.4 and will be removed in 5.0, use "tagged_iterator" instead.', $arg->getAttribute('type'), $name, $file), E_USER_DEPRECATED);
549+
// no break
550+
case 'tagged_iterator':
548551
case 'tagged_locator':
549552
$type = $arg->getAttribute('type');
550553
$forLocator = 'tagged_locator' === $type;

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,11 @@ private function resolveServices($value, $file, $isParameter = false)
717717
throw new InvalidArgumentException(sprintf('"!service_locator" tag only accepts maps of "@service" references in "%s".', $file));
718718
}
719719
}
720-
if (\in_array($value->getTag(), ['tagged', 'tagged_locator'], true)) {
720+
if (\in_array($value->getTag(), ['tagged', 'tagged_iterator', 'tagged_locator'], true)) {
721+
if ('tagged' === $value->getTag()) {
722+
@trigger_error('"!tagged" is deprecated since Symfony 4.4 and will be removed in 5.0, use "!tagged_iterator" instead.', E_USER_DEPRECATED);
723+
}
724+
721725
$forLocator = 'tagged_locator' === $value->getTag();
722726

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

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