@@ -62,6 +62,20 @@ but keeps a reference of the old one as ``.inner``:
62
62
63
63
.. configuration-block ::
64
64
65
+ .. code-block :: php-attributes
66
+
67
+ // src/DecoratingMailer.php
68
+ namespace App;
69
+
70
+ // ...
71
+ use Symfony\Component\DependencyInjection\Attribute\AsDecorator;
72
+
73
+ #[AsDecorator(decorates: Mailer::class)]
74
+ class DecoratingMailer
75
+ {
76
+ // ...
77
+ }
78
+
65
79
.. code-block :: yaml
66
80
67
81
# config/services.yaml
@@ -125,6 +139,28 @@ automatically changed to ``'.inner'``):
125
139
126
140
.. configuration-block ::
127
141
142
+ .. code-block :: php-attributes
143
+
144
+ // src/DecoratingMailer.php
145
+ namespace App;
146
+
147
+ // ...
148
+ use Symfony\Component\DependencyInjection\Attribute\AsDecorator;
149
+ use Symfony\Component\DependencyInjection\Attribute\MapDecorated;
150
+
151
+ #[AsDecorator(decorates: Mailer::class)]
152
+ class DecoratingMailer
153
+ {
154
+ private $inner;
155
+
156
+ public function __construct(#[MapDecorated] $inner)
157
+ {
158
+ $this->inner = $inner;
159
+ }
160
+
161
+ // ...
162
+ }
163
+
128
164
.. code-block :: yaml
129
165
130
166
# config/services.yaml
@@ -249,6 +285,37 @@ the ``decoration_priority`` option. Its value is an integer that defaults to
249
285
250
286
.. configuration-block ::
251
287
288
+ .. code-block :: php-attributes
289
+
290
+ // ...
291
+ use Symfony\Component\DependencyInjection\Attribute\AsDecorator;
292
+ use Symfony\Component\DependencyInjection\Attribute\MapDecorated;
293
+
294
+ #[AsDecorator(decorates: Foo::class, priority: 5)]
295
+ class Bar
296
+ {
297
+ private $inner;
298
+
299
+ public function __construct(#[MapDecorated] $inner)
300
+ {
301
+ $this->inner = $inner;
302
+ }
303
+ // ...
304
+ }
305
+
306
+ #[AsDecorator(decorates: Foo::class, priority: 1)]
307
+ class Baz
308
+ {
309
+ private $inner;
310
+
311
+ public function __construct(#[MapDecorated] $inner)
312
+ {
313
+ $this->inner = $inner;
314
+ }
315
+
316
+ // ...
317
+ }
318
+
252
319
.. code-block :: yaml
253
320
254
321
# config/services.yaml
@@ -324,6 +391,26 @@ Three different behaviors are available:
324
391
325
392
.. configuration-block ::
326
393
394
+ .. code-block :: php-attributes
395
+
396
+ // ...
397
+ use Symfony\Component\DependencyInjection\Attribute\AsDecorator;
398
+ use Symfony\Component\DependencyInjection\Attribute\MapDecorated;
399
+ use Symfony\Component\DependencyInjection\ContainerInterface;
400
+
401
+ #[AsDecorator(decorates: Mailer::class, onInvalid: ContainerInterface::IGNORE_ON_INVALID_REFERENCE)]
402
+ class Bar
403
+ {
404
+ private $inner;
405
+
406
+ public function __construct(#[MapDecorated] $inner)
407
+ {
408
+ $this->inner = $inner;
409
+ }
410
+
411
+ // ...
412
+ }
413
+
327
414
.. code-block :: yaml
328
415
329
416
# config/services.yaml
0 commit comments