Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit d08da50

Browse filesBrowse files
committed
[Components] consistent & complete config examples
Make configuration examples in the components section consistent throughout the different configuration formats. Also fixing several syntax issues.
1 parent 7bb4f34 commit d08da50
Copy full SHA for d08da50

File tree

Expand file treeCollapse file tree

11 files changed

+456
-318
lines changed
Filter options
Expand file treeCollapse file tree

11 files changed

+456
-318
lines changed

‎components/dependency_injection/advanced.rst

Copy file name to clipboardExpand all lines: components/dependency_injection/advanced.rst
+48-12Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,20 @@ Here is an example:
4242
4343
.. code-block:: xml
4444
45-
<service id="foo" class="Example\Foo" public="false" />
45+
<?xml version="1.0" encoding="UTF-8" ?>
46+
<container xmlns="http://symfony.com/schema/dic/services"
47+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
48+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
49+
50+
<services>
51+
<service id="foo" class="Example\Foo" public="false" />
52+
</services>
53+
</container>
4654
4755
.. code-block:: php
4856
57+
use Symfony\Component\DependencyInjection\Definition;
58+
4959
$definition = new Definition('Example\Foo');
5060
$definition->setPublic(false);
5161
$container->setDefinition('foo', $definition);
@@ -88,15 +98,22 @@ To create a synthetic service, set ``synthetic`` to ``true``:
8898
8999
.. code-block:: xml
90100
91-
<service id="request"
92-
synthetic="true" />
101+
<?xml version="1.0" encoding="UTF-8" ?>
102+
<container xmlns="http://symfony.com/schema/dic/services"
103+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
104+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
105+
106+
<services>
107+
<service id="request" synthetic="true" />
108+
</services>
109+
</container>
93110
94111
.. code-block:: php
95112
96113
use Symfony\Component\DependencyInjection\Definition;
97114
98-
// ...
99-
$container->setDefinition('request', new Definition())
115+
$container
116+
->setDefinition('request', new Definition())
100117
->setSynthetic(true);
101118
102119
As you see, only the ``synthetic`` option is set. All other options are only used
@@ -128,14 +145,23 @@ services.
128145
129146
.. code-block:: xml
130147
131-
<service id="foo" class="Example\Foo"/>
148+
<?xml version="1.0" encoding="UTF-8" ?>
149+
<container xmlns="http://symfony.com/schema/dic/services"
150+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
151+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
152+
153+
<services>
154+
<service id="foo" class="Example\Foo" />
132155
133-
<service id="bar" alias="foo" />
156+
<service id="bar" alias="foo" />
157+
</services>
158+
</container>
134159
135160
.. code-block:: php
136161
137-
$definition = new Definition('Example\Foo');
138-
$container->setDefinition('foo', $definition);
162+
use Symfony\Component\DependencyInjection\Definition;
163+
164+
$container->setDefinition('foo', new Definition('Example\Foo'));
139165
140166
$containerBuilder->setAlias('bar', 'foo');
141167
@@ -173,12 +199,22 @@ the service itself gets loaded. To do so, you can use the ``file`` directive.
173199
174200
.. code-block:: xml
175201
176-
<service id="foo" class="Example\Foo\Bar">
177-
<file>%kernel.root_dir%/src/path/to/file/foo.php</file>
178-
</service>
202+
<?xml version="1.0" encoding="UTF-8" ?>
203+
<container xmlns="http://symfony.com/schema/dic/services"
204+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
205+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
206+
207+
<services>
208+
<service id="foo" class="Example\Foo\Bar">
209+
<file>%kernel.root_dir%/src/path/to/file/foo.php</file>
210+
</service>
211+
</services>
212+
</container>
179213
180214
.. code-block:: php
181215
216+
use Symfony\Component\DependencyInjection\Definition;
217+
182218
$definition = new Definition('Example\Foo\Bar');
183219
$definition->setFile('%kernel.root_dir%/src/path/to/file/foo.php');
184220
$container->setDefinition('foo', $definition);

‎components/dependency_injection/compilation.rst

Copy file name to clipboardExpand all lines: components/dependency_injection/compilation.rst
-1Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@ The XML version of the config would then look like this:
203203
<acme_demo:foo>fooValue</acme_hello:foo>
204204
<acme_demo:bar>barValue</acme_demo:bar>
205205
</acme_demo:config>
206-
207206
</container>
208207
209208
.. note::

‎components/dependency_injection/configurators.rst

Copy file name to clipboardExpand all lines: components/dependency_injection/configurators.rst
+34-24Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -155,30 +155,40 @@ The service config for the above classes would look something like this:
155155
156156
.. code-block:: xml
157157
158-
<services>
159-
<service id="my_mailer">
160-
<!-- ... -->
161-
</service>
162-
<service id="email_formatter_manager" class="EmailFormatterManager">
163-
<!-- ... -->
164-
</service>
165-
<service id="email_configurator" class="EmailConfigurator">
166-
<argument type="service" id="email_formatter_manager" />
167-
<!-- ... -->
168-
</service>
169-
<service id="newsletter_manager" class="NewsletterManager">
170-
<call method="setMailer">
171-
<argument type="service" id="my_mailer" />
172-
</call>
173-
<configurator service="email_configurator" method="configure" />
174-
</service>
175-
<service id="greeting_card_manager" class="GreetingCardManager">
176-
<call method="setMailer">
177-
<argument type="service" id="my_mailer" />
178-
</call>
179-
<configurator service="email_configurator" method="configure" />
180-
</service>
181-
</services>
158+
<?xml version="1.0" encoding="UTF-8" ?>
159+
<container xmlns="http://symfony.com/schema/dic/services"
160+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
161+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
162+
163+
<services>
164+
<service id="my_mailer">
165+
<!-- ... -->
166+
</service>
167+
168+
<service id="email_formatter_manager" class="EmailFormatterManager">
169+
<!-- ... -->
170+
</service>
171+
172+
<service id="email_configurator" class="EmailConfigurator">
173+
<argument type="service" id="email_formatter_manager" />
174+
<!-- ... -->
175+
</service>
176+
177+
<service id="newsletter_manager" class="NewsletterManager">
178+
<call method="setMailer">
179+
<argument type="service" id="my_mailer" />
180+
</call>
181+
<configurator service="email_configurator" method="configure" />
182+
</service>
183+
184+
<service id="greeting_card_manager" class="GreetingCardManager">
185+
<call method="setMailer">
186+
<argument type="service" id="my_mailer" />
187+
</call>
188+
<configurator service="email_configurator" method="configure" />
189+
</service>
190+
</services>
191+
</container>
182192
183193
.. code-block:: php
184194

‎components/dependency_injection/factories.rst

Copy file name to clipboardExpand all lines: components/dependency_injection/factories.rst
+70-50Lines changed: 70 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,24 @@ class:
4747
4848
.. code-block:: xml
4949
50-
<parameters>
51-
<!-- ... -->
52-
<parameter key="newsletter_manager.class">NewsletterManager</parameter>
53-
<parameter key="newsletter_factory.class">NewsletterFactory</parameter>
54-
</parameters>
55-
56-
<services>
57-
<service id="newsletter_manager"
58-
class="%newsletter_manager.class%"
59-
factory-class="%newsletter_factory.class%"
60-
factory-method="get"
61-
/>
50+
<?xml version="1.0" encoding="UTF-8" ?>
51+
<container xmlns="http://symfony.com/schema/dic/services"
52+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
53+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
54+
55+
<parameters>
56+
<!-- ... -->
57+
<parameter key="newsletter_manager.class">NewsletterManager</parameter>
58+
<parameter key="newsletter_factory.class">NewsletterFactory</parameter>
59+
</parameters>
60+
61+
<services>
62+
<service
63+
id="newsletter_manager"
64+
class="%newsletter_manager.class%"
65+
factory-class="%newsletter_factory.class%"
66+
factory-method="get" />
67+
</services>
6268
</services>
6369
6470
.. code-block:: php
@@ -69,13 +75,11 @@ class:
6975
$container->setParameter('newsletter_manager.class', 'NewsletterManager');
7076
$container->setParameter('newsletter_factory.class', 'NewsletterFactory');
7177
72-
$container->setDefinition('newsletter_manager', new Definition(
73-
'%newsletter_manager.class%'
74-
))->setFactoryClass(
75-
'%newsletter_factory.class%'
76-
)->setFactoryMethod(
77-
'get'
78-
);
78+
$definition = new Definition('%newsletter_manager.class%');
79+
$definition->setFactoryClass('%newsletter_factory.class%');
80+
$definition->setFactoryMethod('get');
81+
82+
$container->setDefinition('newsletter_manager', $definition);
7983
8084
When you specify the class to use for the factory (via ``factory_class``)
8185
the method will be called statically. If the factory itself should be instantiated
@@ -100,20 +104,27 @@ In this case, the method (e.g. get) should be changed to be non-static:
100104
101105
.. code-block:: xml
102106
103-
<parameters>
104-
<!-- ... -->
105-
<parameter key="newsletter_manager.class">NewsletterManager</parameter>
106-
<parameter key="newsletter_factory.class">NewsletterFactory</parameter>
107-
</parameters>
108-
109-
<services>
110-
<service id="newsletter_factory" class="%newsletter_factory.class%"/>
111-
<service id="newsletter_manager"
112-
class="%newsletter_manager.class%"
113-
factory-service="newsletter_factory"
114-
factory-method="get"
115-
/>
116-
</services>
107+
<?xml version="1.0" encoding="UTF-8" ?>
108+
<container xmlns="http://symfony.com/schema/dic/services"
109+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
110+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
111+
112+
<parameters>
113+
<!-- ... -->
114+
<parameter key="newsletter_manager.class">NewsletterManager</parameter>
115+
<parameter key="newsletter_factory.class">NewsletterFactory</parameter>
116+
</parameters>
117+
118+
<services>
119+
<service id="newsletter_factory" class="%newsletter_factory.class%"/>
120+
121+
<service
122+
id="newsletter_manager"
123+
class="%newsletter_manager.class%"
124+
factory-service="newsletter_factory"
125+
factory-method="get" />
126+
</services>
127+
</container>
117128
118129
.. code-block:: php
119130
@@ -137,7 +148,8 @@ In this case, the method (e.g. get) should be changed to be non-static:
137148
.. note::
138149

139150
The factory service is specified by its id name and not a reference to
140-
the service itself. So, you do not need to use the @ syntax.
151+
the service itself. So, you do not need to use the @ syntax for this in
152+
YAML configurations.
141153

142154
Passing Arguments to the Factory Method
143155
---------------------------------------
@@ -166,22 +178,30 @@ in the previous example takes the ``templating`` service as an argument:
166178
167179
.. code-block:: xml
168180
169-
<parameters>
170-
<!-- ... -->
171-
<parameter key="newsletter_manager.class">NewsletterManager</parameter>
172-
<parameter key="newsletter_factory.class">NewsletterFactory</parameter>
173-
</parameters>
174-
175-
<services>
176-
<service id="newsletter_factory" class="%newsletter_factory.class%"/>
177-
<service id="newsletter_manager"
178-
class="%newsletter_manager.class%"
179-
factory-service="newsletter_factory"
180-
factory-method="get"
181-
>
182-
<argument type="service" id="templating" />
183-
</service>
184-
</services>
181+
<?xml version="1.0" encoding="UTF-8" ?>
182+
<container xmlns="http://symfony.com/schema/dic/services"
183+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
184+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
185+
186+
<parameters>
187+
<!-- ... -->
188+
<parameter key="newsletter_manager.class">NewsletterManager</parameter>
189+
<parameter key="newsletter_factory.class">NewsletterFactory</parameter>
190+
</parameters>
191+
192+
<services>
193+
<service id="newsletter_factory" class="%newsletter_factory.class%"/>
194+
195+
<service
196+
id="newsletter_manager"
197+
class="%newsletter_manager.class%"
198+
factory-service="newsletter_factory"
199+
factory-method="get">
200+
201+
<argument type="service" id="templating" />
202+
</service>
203+
</services>
204+
</container>
185205
186206
.. code-block:: php
187207

‎components/dependency_injection/introduction.rst

Copy file name to clipboardExpand all lines: components/dependency_injection/introduction.rst
+22-16Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -244,22 +244,28 @@ config files:
244244
245245
.. code-block:: xml
246246
247-
<parameters>
248-
<!-- ... -->
249-
<parameter key="mailer.transport">sendmail</parameter>
250-
</parameters>
251-
252-
<services>
253-
<service id="mailer" class="Mailer">
254-
<argument>%mailer.transport%</argument>
255-
</service>
256-
257-
<service id="newsletter_manager" class="NewsletterManager">
258-
<call method="setMailer">
259-
<argument type="service" id="mailer" />
260-
</call>
261-
</service>
262-
</services>
247+
<?xml version="1.0" encoding="UTF-8" ?>
248+
<container xmlns="http://symfony.com/schema/dic/services"
249+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
250+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
251+
252+
<parameters>
253+
<!-- ... -->
254+
<parameter key="mailer.transport">sendmail</parameter>
255+
</parameters>
256+
257+
<services>
258+
<service id="mailer" class="Mailer">
259+
<argument>%mailer.transport%</argument>
260+
</service>
261+
262+
<service id="newsletter_manager" class="NewsletterManager">
263+
<call method="setMailer">
264+
<argument type="service" id="mailer" />
265+
</call>
266+
</service>
267+
</services>
268+
</container>
263269
264270
.. code-block:: php
265271

‎components/dependency_injection/lazy_services.rst

Copy file name to clipboardExpand all lines: components/dependency_injection/lazy_services.rst
+11-1Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,20 @@ You can mark the service as ``lazy`` by manipulating its definition:
6262
6363
.. code-block:: xml
6464
65-
<service id="foo" class="Acme\Foo" lazy="true" />
65+
<?xml version="1.0" encoding="UTF-8" ?>
66+
<container xmlns="http://symfony.com/schema/dic/services"
67+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
68+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
69+
70+
<services>
71+
<service id="foo" class="Acme\Foo" lazy="true" />
72+
</services>
73+
</container>
6674
6775
.. code-block:: php
6876
77+
use Symfony\Component\DependencyInjection\Definition;
78+
6979
$definition = new Definition('Acme\Foo');
7080
$definition->setLazy(true);
7181
$container->setDefinition('foo', $definition);

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.