8000 Merge branch '2.7' into 2.8 · symfony/symfony-docs@03969ea · GitHub
[go: up one dir, main page]

Skip to content

Commit 03969ea

Browse files
committed
Merge branch '2.7' into 2.8
* 2.7: Update options_resolver.rst Fixed a minor typo Fixed a minor typo add labels for old headlines fix versionadded directives Removed "encryption" and "auth_mode" from the list of %env()% compatible options Fixed ... again ... the versionadded directives Added the missing "versionadded" directives add mail transport as deprecated Minor tweaks update swiftmailer reference Replace calls to setDefinition() by register() Better explain empty_data values Readd mixed type for empty_data, it can be string, array or object Tried to write the important points more explicitly Updated the example add added a caution Addressed @stof's comment improved accuracy fix typo explicit differences between 'data' & 'empty_data' in FormType
2 parents a256fed + 7571315 commit 03969ea

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+299
-389
lines changed

_includes/service_container/_my_mailer.rst.inc

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@
2828

2929
// app/config/services.php
3030
use AppBundle\Mailer;
31-
use Symfony\Component\DependencyInjection\Definition;
3231

33-
$container->setDefinition('app.mailer', new Definition(
34-
Mailer::class,
35-
array('sendmail')
36-
));
32+
$container->register('app.mailer', Mailer::class)
33+
->addArgument('sendmail');

components/event_dispatcher.rst

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ answer.
2222
Consider the real-world example where you want to provide a plugin system
2323
for your project. A plugin should be able to add methods, or do something
2424
before or after a method is executed, without interfering with other plugins.
25-
This is not an easy problem to solve with single inheritance, and even if
25+
This is not an easy problem to solve with single inheritance, and even if
2626
multiple inheritance was possible with PHP, it comes with its own drawbacks.
2727

2828
The Symfony EventDispatcher component implements the `Mediator`_ pattern
@@ -198,7 +198,6 @@ determine which instance is passed.
198198
to tag services as event listeners::
199199

200200
use Symfony\Component\DependencyInjection\ContainerBuilder;
201-
use Symfony\Component\DependencyInjection\Definition;
202201
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
203202
use Symfony\Component\DependencyInjection\Reference;
204203
use Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher;
@@ -208,23 +207,19 @@ determine which instance is passed.
208207
$containerBuilder->addCompilerPass(new RegisterListenersPass());
209208

210209
// register the event dispatcher service
211-
$containerBuilder->setDefinition('event_dispatcher', new Definition(
212-
ContainerAwareEventDispatcher::class,
213-
array(new Reference('service_container'))
214-
));
210+
$containerBuilder->register('event_dispatcher', ContainerAwareEventDispatcher::class)
211+
->addArgument(new Reference('service_container'));
215212

216213
// register your event listener service
217-
$listener = new Definition(\AcmeListener::class);
218-
$listener->addTag('kernel.event_listener', array(
219-
'event' => 'acme.foo.action',
220-
'method' => 'onFooAction',
221-
));
222-
$containerBuilder->setDefinition('listener_service_id', $listener);
214+
$containerBuilder->register('listener_service_id', \AcmeListener::class)
215+
->addTag('kernel.event_listener', array(
216+
'event' => 'acme.foo.action',
217+
'method' => 'onFooAction',
218+
));
223219

224220
// register an event subscriber
225-
$subscriber = new Definition(\AcmeSubscriber::class);
226-
$subscriber->addTag('kernel.event_subscriber');
227-
$containerBuilder->setDefinition('subscriber_service_id', $subscriber);
221+
$containerBuilder->register('subscriber_service_id', \AcmeSubscriber::class)
222+
->addTag('kernel.event_subscriber');
228223

229224
By default, the listeners pass assumes that the event dispatcher's service
230225
id is ``event_dispatcher``, that event listeners are tagged with the
@@ -441,7 +436,7 @@ EventDispatcher Aware Events and Listeners
441436
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
442437

443438
The ``EventDispatcher`` always passes the dispatched event, the event's
444-
name and a reference to itself to the listeners. This can lead to some advanced
439+
name and a reference to itself to the listeners. This can lead to some advanced
445440
applications of the ``EventDispatcher`` including dispatching other events inside
446441
listeners, chaining events or even lazy loading listeners into the dispatcher object.
447442

components/options_resolver.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ the ``Mailer`` class makes a mistake?
9090
.. code-block:: php
9191
9292
$mailer = new Mailer(array(
93-
'usernme' => 'johndoe', // usernAme misspelled
93+
'usernme' => 'johndoe', // usernme misspelled (instead of username)
9494
));
9595
9696
No error will be shown. In the best case, the bug will appear during testing,

console/logging.rst

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -110,21 +110,14 @@ First configure a listener for console exception events in the service container
110110
111111
// app/config/services.php
112112
use AppBundle\EventListener\ConsoleExceptionListener;
113-
use Symfony\Component\DependencyInjection\Definition;
114113
use Symfony\Component\DependencyInjection\Reference;
115114
116-
$definitionConsoleExceptionListener = new Definition(
117-
ConsoleExceptionListener::class,
118-
array(new Reference('logger'))
119-
);
120-
$definitionConsoleExceptionListener->addTag(
121-
'kernel.event_listener',
122-
array('event' => 'console.exception')
123-
);
124-
$container->setDefinition(
125-
'app.listener.command_exception',
126-
$definitionConsoleExceptionListener
127-
);
115+
$container->register('app.listener.command_exception', ConsoleExceptionListener::class)
116+
->addArgument(new Reference('logger'))
117+
->addTag(
118+
'kernel.event_listener',
119+
array('event' => 'console.exception')
120+
);
128121
129122
Then implement the actual listener::
130123

@@ -211,21 +204,14 @@ First configure a listener for console terminate events in the service container
211204
212205
// app/config/services.php
213206
use AppBundle\EventListener\ErrorLoggerListener;
214-
use Symfony\Component\DependencyInjection\Definition;
215207
use Symfony\Component\DependencyInjection\Reference;
216208
217-
$definitionErrorLoggerListener = new Definition(
218-
ErrorLoggerListener::class,
219-
array(new Reference('logger'))
220-
);
221-
$definitionErrorLoggerListener->addTag(
222-
'kernel.event_listener',
223-
array('event' => 'console.terminate')
224-
);
225-
$container->setDefinition(
226-
'app.listener.command_error',
227-
$definitionErrorLoggerListener
228-
);
209+
$container->register('app.listener.command_error', ErrorLoggerListener::class)
210+
->addArgument(new Reference('logger'))
211+
->addTag(
212+
'kernel.event_listener',
213+
array('event' => 'console.terminate')
214+
);
229215
230216
Then implement the actual listener::
231217

controller/error_pages.rst

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -296,13 +296,12 @@ In that case, you might want to override one or both of the ``showAction()`` and
296296
// app/config/services.php
297297
use AppBundle\Controller\CustomExceptionController;
298298
use Symfony\Component\DependencyInjection\Reference;
299-
use Symfony\Component\DependencyInjection\Definition;
300299
301-
$definition = new Definition(CustomExceptionController::class, array(
302-
new Reference('twig'),
303-
'%kernel.debug%'
304-
));
305-
$container->setDefinition('app.exception_controller', $definition);
300+
$container->register('app.exception_controller', CustomExceptionController::class)
301+
->setArguments(array(
302+
new Reference('twig'),
303+
'%kernel.debug%',
304+
));
306305
307306
And then configure ``twig.exception_controller`` using the controller as
308307
services syntax (e.g. ``app.exception_controller:showAction``).

controller/service.rst

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -226,13 +226,10 @@ argument:
226226
227227
// app/config/services.php
228228
use AppBundle\Controller\HelloController;
229-
use Symfony\Component\DependencyInjection\Definition;
230229
use Symfony\Component\DependencyInjection\Reference;
231230
232-
$container->setDefinition('app.hello_controller', new Definition(
233-
HelloController::class,
234-
array(new Reference('templating'))
235-
));
231+
$container->register('app.hello_controller', HelloController::class)
232+
->addArgument(new Reference('templating'));
236233
237234
Rather than fetching the ``templating`` service from the container, you can
238235
inject *only* the exact service(s) that you need directly into the controller.

controller/upload_file.rst

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -283,13 +283,10 @@ Then, define a service for this class:
283283
284284
// app/config/services.php
285285
use AppBundle\FileUploader;
286-
use Symfony\Component\DependencyInjection\Definition;
287286
288287
// ...
289-
$container->setDefinition('app.brochure_uploader', new Definition(
290-
FileUploader::class,
291-
array('%brochures_directory%')
292-
));
288+
$container->register('app.brochure_uploader', FileUploader::class)
289+
->addArgument('%brochures_directory%');
293290
294291
Now you're ready to use this service in the controller::
295292

@@ -411,21 +408,17 @@ Now, register this class as a Doctrine listener:
411408
412409
// app/config/services.php
413410
use AppBundle\EventListener\BrochureUploaderListener;
414-
use Symfony\Component\DependencyInjection\Definition;
415411
use Symfony\Component\DependencyInjection\Reference;
416412
417413
// ...
418-
$definition = new Definition(
419-
BrochureUploaderListener::class,
420-
array(new Reference('brochures_directory'))
421-
);
422-
$definition->addTag('doctrine.event_listener', array(
423-
'event' => 'prePersist',
424-
));
425-
$definition->addTag('doctrine.event_listener', array(
426-
'event' => 'preUpdate',
427-
));
428-
$container->setDefinition('app.doctrine_brochure_listener', $definition);
414+
$container->register('app.doctrine_brochure_listener', BrochureUploaderListener::class)
415+
->addArgument(new Reference('brochures_directory'))
416+
->addTag('doctrine.event_listener', array(
417+
'event' => 'prePersist',
418+
))
419+
->addTag('doctrine.event_listener', array(
420+
'event' => 'prePersist',
421+
));
429422
430423
This listener is now automatically executed when persisting a new Product
431424
entity. This way, you can remove everything related to uploading from the

doctrine/event_listeners_subscribers.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ managers that use this connection.
8484
use AppBundle\EventListener\SearchIndexer;
8585
use AppBundle\EventListener\SearchIndexer2;
8686
use AppBundle\EventListener\SearchIndexerSubscriber;
87-
use Symfony\Component\DependencyInjection\Definition;
8887
8988
$container->loadFromExtension('doctrine', array(
9089
'dbal' => array(

doctrine/mongodb_session_storage.rst

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ need to change/add some parameters in the main configuration file:
7777
.. code-block:: php
7878
7979
use Symfony\Component\DependencyInjection\Reference;
80-
use Symfony\Component\DependencyInjection\Definition;
8180
use Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandler;
8281
8382
$container->loadFromExtension('framework', array(
@@ -89,20 +88,19 @@ need to change/add some parameters in the main configuration file:
8988
),
9089
));
9190
92-
$container->setDefinition('mongo_client', new Definition(
93-
\MongoClient::class,
94-
array(
91+
$container->register('mongo_client', \MongoClient::class)
92+
->setArguments(array(
9593
// if using a username and password
9694
array('mongodb://%mongodb_username%:%mongodb_password%@%mongodb_host%:27017'),
9795
// if not using a username and password
9896
array('mongodb://%mongodb_host%:27017'),
99-
)
100-
));
97+
));
10198
102-
$container->setDefinition('session.handler.mongo', new Definition(
103-
MongoDbSessionHandler::class,
104-
array(new Reference('mongo_client'), '%mongo.session.options%')
105-
));
99+
$container->register('session.handler.mongo', MongoDbSessionHandler::class)
100+
->setArguments(array(
101+
new Reference('mongo_client'),
102+
'%mongo.session.options%',
103+
));
106104
107105
The parameters used above should be defined somewhere in your application, often in your main
108106
parameters configuration:
@@ -149,7 +147,6 @@ parameters configuration:
149147
.. code-block:: php
150148
151149
use Symfony\Component\DependencyInjection\Reference;
152-
use Symfony\Component\DependencyInjection\Definition;
153150
154151
$container->setParameter('mongo.session.options', array(
155152
'database' => 'session_db', // your MongoDB database name

doctrine/pdo_session_storage.rst

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ To use it, you just need to change some parameters in the main configuration fil
5252
5353
// app/config/config.php
5454
55+
use Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler;
56+
5557
// ...
5658
$container->loadFromExtension('framework', array(
5759
// ...
@@ -61,11 +63,11 @@ To use it, you just need to change some parameters in the main configuration fil
6163
),
6264
));
6365
64-
$storageDefinition = new Definition(PdoSessionHandler::class, array(
65-
'mysql:dbname=mydatabase',
66-
array('db_username' => 'myuser', 'db_password' => 'mypassword')
67-
));
68-
$container->setDefinition('session.handler.pdo', $storageDefinition);
66+
$container->register('session.handler.pdo', PdoSessionHandler::class)
67+
->setArguments(array(
68+
'mysql:dbname=mydatabase',
69+
array('db_username' => 'myuser', 'db_password' => 'mypassword'),
70+
));
6971
7072
Configuring the Table and Column Names
7173
--------------------------------------
@@ -106,15 +108,14 @@ a second array argument to ``PdoSessionHandler``:
106108
107109
// app/config/config.php
108110
109-
use Symfony\Component\DependencyInjection\Definition;
110111
use Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler;
111112
// ...
112113
113-
$storageDefinition = new Definition(PdoSessionHandler::class, array(
114-
'mysql:dbname=mydatabase',
115-
array('db_table' => 'sessions', 'db_username' => 'myuser', 'db_password' => 'mypassword')
116-
));
117-
$container->setDefinition('session.handler.pdo', $storageDefinition);
114+
$container->register('session.handler.pdo', PdoSessionHandler::class)
115+
->setArguments(array(
116+
'mysql:dbname=mydatabase',
117+
array('db_table' => 'sessions', 'db_username' => 'myuser', 'db_password' => 'mypassword'),
118+
));
118119
119120
These are parameters that you must configure:
120121

event_dispatcher/before_after_filters.rst

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -173,14 +173,13 @@ your listener to be called just before any controller is executed.
173173
174174
// app/config/services.php
175175
use AppBundle\EventListener\TokenListener;
176-
use Symfony\Component\DependencyInjection\Definition;
177176
178-
$listener = new Definition(TokenListener::class, array('%tokens%'));
179-
$listener->addTag('kernel.event_listener', array(
180-
'event' => 'kernel.controller',
181-
'method' => 'onKernelController'
182-
));
183-
$container->setDefinition('app.tokens.action_listener', $listener);
177+
$container->register('app.tokens.action_listener', TokenListener::class)
178+
->addArgument('%tokens%')
179+
->addTag('kernel.event_listener', array(
180+
'event' => 'kernel.controller',
181+
'method' => 'onKernelController',
182+
));
184183
185184
With this configuration, your ``TokenListener`` ``onKernelController()`` method
186185
will be executed on each request. If the controller that is about to be executed
@@ -271,18 +270,17 @@ event:
271270
272271
// app/config/services.php
273272
use AppBundle\EventListener\TokenListener;
274-
use Symfony\Component\DependencyInjection\Definition;
275273
276-
$listener = new Definition(TokenListener::class, array('%tokens%'));
277-
$listener->addTag('kernel.event_listener', array(
278-
'event' => 'kernel.controller',
279-
'method' => 'onKernelController'
280-
));
281-
$listener->addTag('kernel.event_listener', array(
282-
'event' => 'kernel.response',
283-
'method' => 'onKernelResponse'
284-
));
285-
$container->setDefinition('app.tokens.action_listener', $listener);
274+
$container->register('app.tokens.action_listener', TokenListener::class)
275+
->addArgument('%tokens%')
276+
->addTag('kernel.event_listener', array(
277+
'event' => 'kernel.controller',
278+
'method' => 'onKernelController',
279+
))
280+
->addTag('kernel.event_listener', array(
281+
'event' => 'kernel.response',
282+
'method' => 'onKernelResponse',
283+
));
286284
287285
That's it! The ``TokenListener`` is now notified before every controller is
288286
executed (``onKernelController()``) and after every controller returns a response

form/create_custom_field_type.rst

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -332,13 +332,9 @@ the ``genders`` parameter value as the first argument to its to-be-created
332332
333333
// src/AppBundle/Resources/config/services.php
334334
use AppBundle\Form\Type\GenderType;
335-
use Symfony\Component\DependencyInjection\Definition;
336335
337-
$container
338-
->setDefinition('app.form.type.gender', new Definition(
339-
GenderType::class,
340-
array('%genders%')
341-
))
336+
$container->register('app.form.type.gender', GenderType::class)
337+
->addArgument('%genders%')
342338
->addTag('form.type')
343339
;
344340

0 commit comments

Comments
 (0)
0