Skip to content

Commit 1fb20e5

Browse files
committed
remove service class parameters
1 parent 8bba316 commit 1fb20e5

File tree

12 files changed

+90
-287
lines changed

12 files changed

+90
-287
lines changed

best_practices/business-logic.rst

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,12 +140,9 @@ the class namespace as a parameter:
140140
# app/config/services.yml
141141
142142
# service definition with class namespace as parameter
143-
parameters:
144-
slugger.class: AppBundle\Utils\Slugger
145-
146143
services:
147144
app.slugger:
148-
class: "%slugger.class%"
145+
class: AppBundle\Utils\Slugger
149146
150147
This practice is cumbersome and completely unnecessary for your own services:
151148

book/service_container.rst

Lines changed: 22 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -203,12 +203,11 @@ straightforward. Parameters make defining services more organized and flexible:
203203
204204
# app/config/config.yml
205205
parameters:
206-
my_mailer.class: Acme\HelloBundle\Mailer
207206
my_mailer.transport: sendmail
208207
209208
services:
210209
my_mailer:
211-
class: "%my_mailer.class%"
210+
class: Acme\HelloBundle\Mailer
212211
arguments: ["%my_mailer.transport%"]
213212
214213
.. code-block:: xml
@@ -220,12 +219,11 @@ straightforward. Parameters make defining services more organized and flexible:
220219
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
221220
222221
<parameters>
223-
<parameter key="my_mailer.class">Acme\HelloBundle\Mailer</parameter>
224222
<parameter key="my_mailer.transport">sendmail</parameter>
225223
</parameters>
226224
227225
<services>
228-
<service id="my_mailer" class="%my_mailer.class%">
226+
<service id="my_mailer" class="Acme\HelloBundle\Mailer">
229227
<argument>%my_mailer.transport%</argument>
230228
</service>
231229
</services>
@@ -236,19 +234,18 @@ straightforward. Parameters make defining services more organized and flexible:
236234
// app/config/config.php
237235
use Symfony\Component\DependencyInjection\Definition;
238236
239-
$container->setParameter('my_mailer.class', 'Acme\HelloBundle\Mailer');
240237
$container->setParameter('my_mailer.transport', 'sendmail');
241238
242239
$container->setDefinition('my_mailer', new Definition(
243-
'%my_mailer.class%',
240+
'Acme\HelloBundle\Mailer',
244241
array('%my_mailer.transport%')
245242
));
246243
247244
The end result is exactly the same as before - the difference is only in
248-
*how* you defined the service. By surrounding the ``my_mailer.class`` and
249-
``my_mailer.transport`` strings in percent (``%``) signs, the container knows
250-
to look for parameters with those names. When the container is built, it
251-
looks up the value of each parameter and uses it in the service definition.
245+
*how* you defined the service. By surrounding the ``my_mailer.transport``
246+
string in percent (``%``) signs, the container knows to look for a parameter
247+
with that name. When the container is built, it looks up the value of each
248+
parameter and uses it in the service definition.
252249

253250
.. note::
254251

@@ -348,12 +345,11 @@ directories don't exist, create them.
348345
349346
# src/Acme/HelloBundle/Resources/config/services.yml
350347
parameters:
351-
my_mailer.class: Acme\HelloBundle\Mailer
352348
my_mailer.transport: sendmail
353349
354350
services:
355351
my_mailer:
356-
class: "%my_mailer.class%"
352+
class: Acme\HelloBundle\Mailer
357353
arguments: ["%my_mailer.transport%"]
358354
359355
.. code-block:: xml
@@ -365,12 +361,11 @@ directories don't exist, create them.
365361
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
366362
367363
<parameters>
368-
<parameter key="my_mailer.class">Acme\HelloBundle\Mailer</parameter>
369364
<parameter key="my_mailer.transport">sendmail</parameter>
370365
</parameters>
371366
372367
<services>
373-
<service id="my_mailer" class="%my_mailer.class%">
368+
<service id="my_mailer" class="Acme\HelloBundle\Mailer">
374369
<argument>%my_mailer.transport%</argument>
375370
</service>
376371
</services>
@@ -381,11 +376,10 @@ directories don't exist, create them.
381376
// src/Acme/HelloBundle/Resources/config/services.php
382377
use Symfony\Component\DependencyInjection\Definition;
383378
384-
$container->setParameter('my_mailer.class', 'Acme\HelloBundle\Mailer');
385379
$container->setParameter('my_mailer.transport', 'sendmail');
386380
387381
$container->setDefinition('my_mailer', new Definition(
388-
'%my_mailer.class%',
382+
'Acme\HelloBundle\Mailer',
389383
array('%my_mailer.transport%')
390384
));
391385
@@ -608,15 +602,11 @@ the service container gives you a much more appealing option:
608602
.. code-block:: yaml
609603
610604
# src/Acme/HelloBundle/Resources/config/services.yml
611-
parameters:
612-
# ...
613-
newsletter_manager.class: Acme\HelloBundle\Newsletter\NewsletterManager
614-
615605
services:
616606
my_mailer:
617607
# ...
618608
newsletter_manager:
619-
class: "%newsletter_manager.class%"
609+
class: Acme\HelloBundle\Newsletter\NewsletterManager
620610
arguments: ["@my_mailer"]
621611
622612
.. code-block:: xml
@@ -627,16 +617,11 @@ the service container gives you a much more appealing option:
627617
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
628618
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
629619
630-
<parameters>
631-
<!-- ... -->
632-
<parameter key="newsletter_manager.class">Acme\HelloBundle\Newsletter\NewsletterManager</parameter>
633-
</parameters>
634-
635620
<services>
636621
<service id="my_mailer">
637622
<!-- ... -->
638623
</service>
639-
<service id="newsletter_manager" class="%newsletter_manager.class%">
624+
<service id="newsletter_manager" class="Acme\HelloBundle\Newsletter\NewsletterManager">
640625
<argument type="service" id="my_mailer"/>
641626
</service>
642627
</services>
@@ -648,15 +633,9 @@ the service container gives you a much more appealing option:
648633
use Symfony\Component\DependencyInjection\Definition;
649634
use Symfony\Component\DependencyInjection\Reference;
650635
651-
// ...
652-
$container->setParameter(
653-
'newsletter_manager.class',
654-
'Acme\HelloBundle\Newsletter\NewsletterManager'
655-
);
656-
657636
$container->setDefinition('my_mailer', ...);
658637
$container->setDefinition('newsletter_manager', new Definition(
659-
'%newsletter_manager.class%',
638+
'Acme\HelloBundle\Newsletter\NewsletterManager',
660639
array(new Reference('my_mailer'))
661640
));
662641
@@ -704,15 +683,11 @@ Injecting the dependency by the setter method just needs a change of syntax:
704683
.. code-block:: yaml
705684
706685
# src/Acme/HelloBundle/Resources/config/services.yml
707-
parameters:
708-
# ...
709-
newsletter_manager.class: Acme\HelloBundle\Newsletter\NewsletterManager
710-
711686
services:
712687
my_mailer:
713688
# ...
714689
newsletter_manager:
715-
class: "%newsletter_manager.class%"
690+
class: Acme\HelloBundle\Newsletter\NewsletterManager
716691
calls:
717692
- [setMailer, ["@my_mailer"]]
718693
@@ -724,16 +699,11 @@ Injecting the dependency by the setter method just needs a change of syntax:
724699
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
725700
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
726701
727-
<parameters>
728-
<!-- ... -->
729-
<parameter key="newsletter_manager.class">Acme\HelloBundle\Newsletter\NewsletterManager</parameter>
730-
</parameters>
731-
732702
<services>
733703
<service id="my_mailer">
734704
<!-- ... -->
735705
</service>
736-
<service id="newsletter_manager" class="%newsletter_manager.class%">
706+
<service id="newsletter_manager" class="Acme\HelloBundle\Newsletter\NewsletterManager">
737707
<call method="setMailer">
738708
<argument type="service" id="my_mailer" />
739709
</call>
@@ -747,15 +717,9 @@ Injecting the dependency by the setter method just needs a change of syntax:
747717
use Symfony\Component\DependencyInjection\Definition;
748718
use Symfony\Component\DependencyInjection\Reference;
749719
750-
// ...
751-
$container->setParameter(
752-
'newsletter_manager.class',
753-
'Acme\HelloBundle\Newsletter\NewsletterManager'
754-
);
755-
756720
$container->setDefinition('my_mailer', ...);
757721
$container->setDefinition('newsletter_manager', new Definition(
758-
'%newsletter_manager.class%'
722+
'Acme\HelloBundle\Newsletter\NewsletterManager'
759723
))->addMethodCall('setMailer', array(
760724
new Reference('my_mailer'),
761725
));
@@ -781,12 +745,9 @@ it exists and do nothing if it doesn't:
781745
.. code-block:: yaml
782746
783747
# src/Acme/HelloBundle/Resources/config/services.yml
784-
parameters:
785-
# ...
786-
787748
services:
788749
newsletter_manager:
789-
class: "%newsletter_manager.class%"
750+
class: Acme\HelloBundle\Newsletter\NewsletterManager
790751
arguments: ["@?my_mailer"]
791752
792753
.. code-block:: xml
@@ -801,7 +762,7 @@ it exists and do nothing if it doesn't:
801762
<service id="my_mailer">
802763
<!-- ... -->
803764
</service>
804-
<service id="newsletter_manager" class="%newsletter_manager.class%">
765+
<service id="newsletter_manager" class="Acme\HelloBundle\Newsletter\NewsletterManager">
805766
<argument type="service" id="my_mailer" on-invalid="ignore" />
806767
</service>
807768
</services>
@@ -814,15 +775,9 @@ it exists and do nothing if it doesn't:
814775
use Symfony\Component\DependencyInjection\Reference;
815776
use Symfony\Component\DependencyInjection\ContainerInterface;
816777
817-
// ...
818-
$container->setParameter(
819-
'newsletter_manager.class',
820-
'Acme\HelloBundle\Newsletter\NewsletterManager'
821-
);
822-
823778
$container->setDefinition('my_mailer', ...);
824779
$container->setDefinition('newsletter_manager', new Definition(
825-
'%newsletter_manager.class%',
780+
'Acme\HelloBundle\Newsletter\NewsletterManager',
826781
array(
827782
new Reference(
828783
'my_mailer',
@@ -899,7 +854,7 @@ Configuring the service container is easy:
899854
# src/Acme/HelloBundle/Resources/config/services.yml
900855
services:
901856
newsletter_manager:
902-
class: "%newsletter_manager.class%"
857+
class: Acme\HelloBundle\Newsletter\NewsletterManager
903858
arguments: ["@mailer", "@templating"]
904859
905860
.. code-block:: xml
@@ -910,7 +865,7 @@ Configuring the service container is easy:
910865
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
911866
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
912867
913-
<service id="newsletter_manager" class="%newsletter_manager.class%">
868+
<service id="newsletter_manager" class="Acme\HelloBundle\Newsletter\NewsletterManager">
914869
<argument type="service" id="mailer"/>
915870
<argument type="service" id="templating"/>
916871
</service>
@@ -920,7 +875,7 @@ Configuring the service container is easy:
920875
921876
// src/Acme/HelloBundle/Resources/config/services.php
922877
$container->setDefinition('newsletter_manager', new Definition(
923-
'%newsletter_manager.class%',
878+
'Acme\HelloBundle\Newsletter\NewsletterManager',
924879
array(
925880
new Reference('mailer'),
926881
new Reference('templating'),

0 commit comments

Comments
 (0)