@@ -8,11 +8,6 @@ As you add more functionality to your application, you may well start to have
8
8
related classes that share some of the same dependencies. For example you
9
9
may have a Newsletter Manager which uses setter injection to set its dependencies::
10
10
11
- namespace Acme\HelloBundle\Mail;
12
-
13
- use Acme\HelloBundle\Mailer;
14
- use Acme\HelloBundle\EmailFormatter;
15
-
16
11
class NewsletterManager
17
12
{
18
13
protected $mailer;
@@ -32,11 +27,6 @@ may have a Newsletter Manager which uses setter injection to set its dependencie
32
27
33
28
and also a Greeting Card class which shares the same dependencies::
34
29
35
- namespace Acme\HelloBundle\Mail;
36
-
37
- use Acme\HelloBundle\Mailer;
38
- use Acme\HelloBundle\EmailFormatter;
39
-
40
30
class GreetingCardManager
41
31
{
42
32
protected $mailer;
@@ -60,11 +50,10 @@ The service config for these classes would look something like this:
60
50
61
51
.. code-block :: yaml
62
52
63
- # src/Acme/HelloBundle/Resources/config/services.yml
64
53
parameters :
65
54
# ...
66
- newsletter_manager.class : Acme\HelloBundle\Mail\ NewsletterManager
67
- greeting_card_manager.class : Acme\HelloBundle\Mail\ GreetingCardManager
55
+ newsletter_manager.class : NewsletterManager
56
+ greeting_card_manager.class : GreetingCardManager
68
57
services :
69
58
my_mailer :
70
59
# ...
@@ -84,11 +73,10 @@ The service config for these classes would look something like this:
84
73
85
74
.. code-block :: xml
86
75
87
- <!-- src/Acme/HelloBundle/Resources/config/services.xml -->
88
76
<parameters >
89
77
<!-- ... -->
90
- <parameter key =" newsletter_manager.class" >Acme\HelloBundle\Mail\ NewsletterManager</parameter >
91
- <parameter key =" greeting_card_manager.class" >Acme\HelloBundle\Mail\ GreetingCardManager</parameter >
78
+ <parameter key =" newsletter_manager.class" >NewsletterManager</parameter >
79
+ <parameter key =" greeting_card_manager.class" >GreetingCardManager</parameter >
92
80
</parameters >
93
81
94
82
<services >
@@ -118,13 +106,12 @@ The service config for these classes would look something like this:
118
106
119
107
.. code-block :: php
120
108
121
- // src/Acme/HelloBundle/Resources/config/services.php
122
109
use Symfony\Component\DependencyInjection\Definition;
123
110
use Symfony\Component\DependencyInjection\Reference;
124
111
125
112
// ...
126
- $container->setParameter('newsletter_manager.class', 'Acme\HelloBundle\Mail\ NewsletterManager');
127
- $container->setParameter('greeting_card_manager.class', 'Acme\HelloBundle\Mail\ GreetingCardManager');
113
+ $container->setParameter('newsletter_manager.class', 'NewsletterManager');
114
+ $container->setParameter('greeting_card_manager.class', 'GreetingCardManager');
128
115
129
116
$container->setDefinition('my_mailer', ... );
130
117
$container->setDefinition('my_email_formatter', ... );
@@ -150,11 +137,6 @@ in two places. Likewise if you needed to make changes to the setter methods
150
137
you would need to do this in both classes. The typical way to deal with the
151
138
common methods of these related classes would be to extract them to a super class::
152
139
153
- namespace Acme\HelloBundle\Mail;
154
-
155
- use Acme\HelloBundle\Mailer;
156
- use Acme\HelloBundle\EmailFormatter;
157
-
158
140
abstract class MailManager
159
141
{
160
142
protected $mailer;
@@ -175,17 +157,13 @@ common methods of these related classes would be to extract them to a super clas
175
157
The ``NewsletterManager `` and ``GreetingCardManager `` can then extend this
176
158
super class::
177
159
178
- namespace Acme\HelloBundle\Mail;
179
-
180
160
class NewsletterManager extends MailManager
181
161
{
182
162
// ...
183
163
}
184
164
185
165
and::
186
166
187
- namespace Acme\HelloBundle\Mail;
188
-
189
167
class GreetingCardManager extends MailManager
190
168
{
191
169
// ...
@@ -199,12 +177,11 @@ a parent for a service.
199
177
200
178
.. code-block :: yaml
201
179
202
- # src/Acme/HelloBundle/Resources/config/services.yml
203
180
parameters :
204
181
# ...
205
- newsletter_manager.class : Acme\HelloBundle\Mail\ NewsletterManager
206
- greeting_card_manager.class : Acme\HelloBundle\Mail\ GreetingCardManager
207
- mail_manager.class : Acme\HelloBundle\Mail\ MailManager
182
+ newsletter_manager.class : NewsletterManager
183
+ greeting_card_manager.class : GreetingCardManager
184
+ mail_manager.class : MailManager
208
185
services :
209
186
my_mailer :
210
187
# ...
@@ -227,12 +204,11 @@ a parent for a service.
227
204
228
205
.. code-block :: xml
229
206
230
- <!-- src/Acme/HelloBundle/Resources/config/services.xml -->
231
207
<parameters >
232
208
<!-- ... -->
233
- <parameter key =" newsletter_manager.class" >Acme\HelloBundle\Mail\ NewsletterManager</parameter >
234
- <parameter key =" greeting_card_manager.class" >Acme\HelloBundle\Mail\ GreetingCardManager</parameter >
235
- <parameter key =" mail_manager.class" >Acme\HelloBundle\Mail\ MailManager</parameter >
209
+ <parameter key =" newsletter_manager.class" >NewsletterManager</parameter >
210
+ <parameter key =" greeting_card_manager.class" >GreetingCardManager</parameter >
211
+ <parameter key =" mail_manager.class" >MailManager</parameter >
236
212
</parameters >
237
213
238
214
<services >
@@ -256,14 +232,13 @@ a parent for a service.
256
232
257
233
.. code-block :: php
258
234
259
- // src/Acme/HelloBundle/Resources/config/services.php
260
235
use Symfony\Component\DependencyInjection\Definition;
261
236
use Symfony\Component\DependencyInjection\Reference;
262
237
263
238
// ...
264
- $container->setParameter('newsletter_manager.class', 'Acme\HelloBundle\Mail\ NewsletterManager');
265
- $container->setParameter('greeting_card_manager.class', 'Acme\HelloBundle\Mail\ GreetingCardManager');
266
- $container->setParameter('mail_manager.class', 'Acme\HelloBundle\Mail\ MailManager');
239
+ $container->setParameter('newsletter_manager.class', 'NewsletterManager');
240
+ $container->setParameter('greeting_card_manager.class', 'GreetingCardManager');
241
+ $container->setParameter('mail_manager.class', 'MailManager');
267
242
268
243
$container->setDefinition('my_mailer', ... );
269
244
$container->setDefinition('my_email_formatter', ... );
@@ -319,12 +294,11 @@ to the ``NewsletterManager`` class, the config would look like this:
319
294
320
295
.. code-block :: yaml
321
296
322
- # src/Acme/HelloBundle/Resources/config/services.yml
323
297
parameters :
324
298
# ...
325
- newsletter_manager.class : Acme\HelloBundle\Mail\ NewsletterManager
326
- greeting_card_manager.class : Acme\HelloBundle\Mail\ GreetingCardManager
327
- mail_manager.class : Acme\HelloBundle\Mail\ MailManager
299
+ newsletter_manager.class : NewsletterManager
300
+ greeting_card_manager.class : GreetingCardManager
301
+ mail_manager.class : MailManager
328
302
services :
329
303
my_mailer :
330
304
# ...
@@ -351,12 +325,11 @@ to the ``NewsletterManager`` class, the config would look like this:
351
325
352
326
.. code-block :: xml
353
327
354
- <!-- src/Acme/HelloBundle/Resources/config/services.xml -->
355
328
<parameters >
356
329
<!-- ... -->
357
- <parameter key =" newsletter_manager.class" >Acme\HelloBundle\Mail\ NewsletterManager</parameter >
358
- <parameter key =" greeting_card_manager.class" >Acme\HelloBundle\Mail\ GreetingCardManager</parameter >
359
- <parameter key =" mail_manager.class" >Acme\HelloBundle\Mail\ MailManager</parameter >
330
+ <parameter key =" newsletter_manager.class" >NewsletterManager</parameter >
331
+ <parameter key =" greeting_card_manager.class" >GreetingCardManager</parameter >
332
+ <parameter key =" mail_manager.class" >MailManager</parameter >
360
333
</parameters >
361
334
362
335
<services >
@@ -387,14 +360,13 @@ to the ``NewsletterManager`` class, the config would look like this:
387
360
388
361
.. code-block :: php
389
362
390
- // src/Acme/HelloBundle/Resources/config/services.php
391
363
use Symfony\Component\DependencyInjection\Definition;
392
364
use Symfony\Component\DependencyInjection\Reference;
393
365
394
366
// ...
395
- $container->setParameter('newsletter_manager.class', 'Acme\HelloBundle\Mail\ NewsletterManager');
396
- $container->setParameter('greeting_card_manager.class', 'Acme\HelloBundle\Mail\ GreetingCardManager');
397
- $container->setParameter('mail_manager.class', 'Acme\HelloBundle\Mail\ MailManager');
367
+ $container->setParameter('newsletter_manager.class', 'NewsletterManager');
368
+ $container->setParameter('greeting_card_manager.class', 'GreetingCardManager');
369
+ $container->setParameter('mail_manager.class', 'MailManager');
398
370
399
371
$container->setDefinition('my_mailer', ... );
400
372
$container->setDefinition('my_alternative_mailer', ... );
@@ -438,11 +410,6 @@ method call involves adding something to a collection, then two objects will
438
410
be added to that collection. The following shows such a case, if the parent
439
411
class looks like this::
440
412
441
- namespace Acme\HelloBundle\Mail;
442
-
443
- use Acme\HelloBundle\Mailer;
444
- use Acme\HelloBundle\EmailFormatter;
445
-
446
413
abstract class MailManager
447
414
{
448
415
protected $filters;
@@ -460,11 +427,10 @@ If you had the following config:
460
427
461
428
.. code-block :: yaml
462
429
463
- # src/Acme/HelloBundle/Resources/config/services.yml
464
430
parameters :
465
431
# ...
466
- newsletter_manager.class : Acme\HelloBundle\Mail\ NewsletterManager
467
- mail_manager.class : Acme\HelloBundle\Mail\ MailManager
432
+ newsletter_manager.class : NewsletterManager
433
+ mail_manager.class : MailManager
468
434
services :
469
435
my_filter :
470
436
# ...
@@ -484,11 +450,10 @@ If you had the following config:
484
450
485
451
.. code-block :: xml
486
452
487
- <!-- src/Acme/HelloBundle/Resources/config/services.xml -->
488
453
<parameters >
489
454
<!-- ... -->
490
- <parameter key =" newsletter_manager.class" >Acme\HelloBundle\Mail\ NewsletterManager</parameter >
491
- <parameter key =" mail_manager.class" >Acme\HelloBundle\Mail\ MailManager</parameter >
455
+ <parameter key =" newsletter_manager.class" >NewsletterManager</parameter >
456
+ <parameter key =" mail_manager.class" >MailManager</parameter >
492
457
</parameters >
493
458
494
459
<services >
@@ -512,13 +477,12 @@ If you had the following config:
512
477
513
478
.. code-block :: php
514
479
515
- // src/Acme/HelloBundle/Resources/config/services.php
516
480
use Symfony\Component\DependencyInjection\Definition;
517
481
use Symfony\Component\DependencyInjection\Reference;
518
482
519
483
// ...
520
- $container->setParameter('newsletter_manager.class', 'Acme\HelloBundle\Mail\ NewsletterManager');
521
- $container->setParameter('mail_manager.class', 'Acme\HelloBundle\Mail\ MailManager');
484
+ $container->setParameter('newsletter_manager.class', 'NewsletterManager');
485
+ $container->setParameter('mail_manager.class', 'MailManager');
522
486
523
487
$container->setDefinition('my_filter', ... );
524
488
$container->setDefinition('another_filter', ... );
0 commit comments