Skip to content
This repository was archived by the owner on Feb 6, 2022. It is now read-only.

Commit ad75109

Browse files
committed
fixed compat with Symfony 3.3
1 parent 00b4958 commit ad75109

File tree

2 files changed

+31
-17
lines changed

2 files changed

+31
-17
lines changed

CHANGELOG

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
* 2.4.2 (2016-12-20)
2+
3+
* fixed compatibility with Symfony 3.3
4+
15
* 2.4.1 (2016-12-20)
26

37
* added missing attachments in the web profiler

DependencyInjection/SwiftmailerExtension.php

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
1515
use Symfony\Component\DependencyInjection\ContainerInterface;
16+
use Symfony\Component\DependencyInjection\ChildDefinition;
1617
use Symfony\Component\DependencyInjection\DefinitionDecorator;
1718
use Symfony\Component\DependencyInjection\Reference;
1819
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
@@ -143,24 +144,24 @@ protected function configureMailerTransport($name, array $mailer, ContainerBuild
143144
$container->setParameter(sprintf('swiftmailer.mailer.%s.transport.smtp.%s', $name, $key), $mailer[$key]);
144145
}
145146

146-
$definitionDecorator = new DefinitionDecorator('swiftmailer.transport.eventdispatcher.abstract');
147+
$definitionDecorator = $this->createChildDefinition('swiftmailer.transport.eventdispatcher.abstract');
147148
$container
148149
->setDefinition(sprintf('swiftmailer.mailer.%s.transport.eventdispatcher', $name), $definitionDecorator)
149150
;
150151

151152
if ('smtp' === $transport) {
152-
$authDecorator = new DefinitionDecorator('swiftmailer.transport.authhandler.abstract');
153+
$authDecorator = $this->createChildDefinition('swiftmailer.transport.authhandler.abstract');
153154
$container
154155
->setDefinition(sprintf('swiftmailer.mailer.%s.transport.authhandler', $name), $authDecorator)
155156
->addMethodCall('setUsername', array(sprintf('%%swiftmailer.mailer.%s.transport.smtp.username%%', $name)))
156157
->addMethodCall('setPassword', array(sprintf('%%swiftmailer.mailer.%s.transport.smtp.password%%', $name)))
157158
->addMethodCall('setAuthMode', array(sprintf('%%swiftmailer.mailer.%s.transport.smtp.auth_mode%%', $name)));
158159

159-
$bufferDecorator = new DefinitionDecorator('swiftmailer.transport.buffer.abstract');
160+
$bufferDecorator = $this->createChildDefinition('swiftmailer.transport.buffer.abstract');
160161
$container
161162
->setDefinition(sprintf('swiftmailer.mailer.%s.transport.buffer', $name), $bufferDecorator);
162163

163-
$configuratorDecorator = new DefinitionDecorator('swiftmailer.transport.smtp.configurator.abstract');
164+
$configuratorDecorator = $this->createChildDefinition('swiftmailer.transport.smtp.configurator.abstract');
164165
$container
165166
->setDefinition(sprintf('swiftmailer.transport.configurator.%s', $name), $configuratorDecorator)
166167
->setArguments(array(
@@ -169,7 +170,7 @@ protected function configureMailerTransport($name, array $mailer, ContainerBuild
169170
))
170171
;
171172

172-
$definitionDecorator = new DefinitionDecorator('swiftmailer.transport.smtp.abstract');
173+
$definitionDecorator = $this->createChildDefinition('swiftmailer.transport.smtp.abstract');
173174
$container
174175
->setDefinition(sprintf('swiftmailer.mailer.%s.transport.smtp', $name), $definitionDecorator)
175176
->setArguments(array(
@@ -192,11 +193,11 @@ protected function configureMailerTransport($name, array $mailer, ContainerBuild
192193

193194
$container->setAlias(sprintf('swiftmailer.mailer.%s.transport', $name), sprintf('swiftmailer.mailer.%s.transport.%s', $name, $transport));
194195
} elseif ('sendmail' === $transport) {
195-
$bufferDecorator = new DefinitionDecorator('swiftmailer.transport.buffer.abstract');
196+
$bufferDecorator = $this->createChildDefinition('swiftmailer.transport.buffer.abstract');
196197
$container
197198
->setDefinition(sprintf('swiftmailer.mailer.%s.transport.buffer', $name), $bufferDecorator);
198199

199-
$configuratorDecorator = new DefinitionDecorator('swiftmailer.transport.smtp.configurator.abstract');
200+
$configuratorDecorator = $this->createChildDefinition('swiftmailer.transport.smtp.configurator.abstract');
200201
$container
201202
->setDefinition(sprintf('swiftmailer.transport.configurator.%s', $name), $configuratorDecorator)
202203
->setArguments(array(
@@ -205,7 +206,7 @@ protected function configureMailerTransport($name, array $mailer, ContainerBuild
205206
))
206207
;
207208

208-
$definitionDecorator = new DefinitionDecorator(sprintf('swiftmailer.transport.%s.abstract', $transport));
209+
$definitionDecorator = $this->createChildDefinition(sprintf('swiftmailer.transport.%s.abstract', $transport));
209210
$container
210211
->setDefinition(sprintf('swiftmailer.mailer.%s.transport.%s', $name, $transport), $definitionDecorator)
211212
->setArguments(array(
@@ -217,14 +218,14 @@ protected function configureMailerTransport($name, array $mailer, ContainerBuild
217218

218219
$container->setAlias(sprintf('swiftmailer.mailer.%s.transport', $name), sprintf('swiftmailer.mailer.%s.transport.%s', $name, $transport));
219220
} elseif ('mail' === $transport) {
220-
$definitionDecorator = new DefinitionDecorator(sprintf('swiftmailer.transport.%s.abstract', $transport));
221+
$definitionDecorator = $this->createChildDefinition(sprintf('swiftmailer.transport.%s.abstract', $transport));
221222
$container
222223
->setDefinition(sprintf('swiftmailer.mailer.%s.transport.%s', $name, $transport), $definitionDecorator)
223224
->addArgument(new Reference(sprintf('swiftmailer.mailer.%s.transport.eventdispatcher', $name)))
224225
;
225226
$container->setAlias(sprintf('swiftmailer.mailer.%s.transport', $name), sprintf('swiftmailer.mailer.%s.transport.%s', $name, $transport));
226227
} elseif ('null' === $transport) {
227-
$definitionDecorator = new DefinitionDecorator('swiftmailer.transport.null.abstract');
228+
$definitionDecorator = $this->createChildDefinition('swiftmailer.transport.null.abstract');
228229
$container
229230
->setDefinition(sprintf('swiftmailer.mailer.%s.transport.null', $name, $transport), $definitionDecorator)
230231
->setArguments(array(
@@ -236,7 +237,7 @@ protected function configureMailerTransport($name, array $mailer, ContainerBuild
236237
$container->setAlias(sprintf('swiftmailer.mailer.%s.transport', $name), sprintf('swiftmailer.mailer.transport.%s', $transport));
237238
}
238239

239-
$definitionDecorator = new DefinitionDecorator('swiftmailer.mailer.abstract');
240+
$definitionDecorator = $this->createChildDefinition('swiftmailer.mailer.abstract');
240241
$container
241242
->setDefinition(sprintf('swiftmailer.mailer.%s', $name), $definitionDecorator)
242243
->replaceArgument(0, new Reference(sprintf('swiftmailer.mailer.%s.transport', $name)))
@@ -255,7 +256,7 @@ protected function configureMailerSpool($name, array $mailer, ContainerBuilder $
255256
}
256257
}
257258

258-
$definitionDecorator = new DefinitionDecorator(sprintf('swiftmailer.spool.%s.abstract', $type));
259+
$definitionDecorator = $this->createChildDefinition(sprintf('swiftmailer.spool.%s.abstract', $type));
259260
if ('file' === $type) {
260261
$container
261262
->setDefinition(sprintf('swiftmailer.mailer.%s.spool.file', $name), $definitionDecorator)
@@ -268,7 +269,7 @@ protected function configureMailerSpool($name, array $mailer, ContainerBuilder $
268269
}
269270
$container->setAlias(sprintf('swiftmailer.mailer.%s.spool', $name), sprintf('swiftmailer.mailer.%s.spool.%s', $name, $type));
270271

271-
$definitionDecorator = new DefinitionDecorator('swiftmailer.transport.spool.abstract');
272+
$definitionDecorator = $this->createChildDefinition('swiftmailer.transport.spool.abstract');
272273
$container
273274
->setDefinition(sprintf('swiftmailer.mailer.%s.transport.spool', $name), $definitionDecorator)
274275
->setArguments(array(
@@ -297,7 +298,7 @@ protected function configureMailerSenderAddress($name, array $mailer, ContainerB
297298
{
298299
if (isset($mailer['sender_address']) && $mailer['sender_address']) {
299300
$container->setParameter(sprintf('swiftmailer.mailer.%s.sender_address', $name), $mailer['sender_address']);
300-
$definitionDecorator = new DefinitionDecorator('swiftmailer.plugin.impersonate.abstract');
301+
$definitionDecorator = $this->createChildDefinition('swiftmailer.plugin.impersonate.abstract');
301302
$container
302303
->setDefinition(sprintf('swiftmailer.mailer.%s.plugin.impersonate', $name), $definitionDecorator)
303304
->setArguments(array(
@@ -319,7 +320,7 @@ protected function configureMailerAntiFlood($name, array $mailer, ContainerBuild
319320
if (isset($mailer['antiflood'])) {
320321
$container->setParameter(sprintf('swiftmailer.mailer.%s.antiflood.threshold', $name), $mailer['antiflood']['threshold']);
321322
$container->setParameter(sprintf('swiftmailer.mailer.%s.antiflood.sleep', $name), $mailer['antiflood']['sleep']);
322-
$definitionDecorator = new DefinitionDecorator('swiftmailer.plugin.antiflood.abstract');
323+
$definitionDecorator = $this->createChildDefinition('swiftmailer.plugin.antiflood.abstract');
323324
$container
324325
->setDefinition(sprintf('swiftmailer.mailer.%s.plugin.antiflood', $name), $definitionDecorator)
325326
->setArguments(array(
@@ -340,7 +341,7 @@ protected function configureMailerDeliveryAddress($name, array $mailer, Containe
340341
$container->setParameter(sprintf('swiftmailer.mailer.%s.single_address', $name), $mailer['delivery_addresses'][0]);
341342
$container->setParameter(sprintf('swiftmailer.mailer.%s.delivery_addresses', $name), $mailer['delivery_addresses']);
342343
$container->setParameter(sprintf('swiftmailer.mailer.%s.delivery_whitelist', $name), $mailer['delivery_whitelist']);
343-
$definitionDecorator = new DefinitionDecorator('swiftmailer.plugin.redirecting.abstract');
344+
$definitionDecorator = $this->createChildDefinition('swiftmailer.plugin.redirecting.abstract');
344345
$container
345346
->setDefinition(sprintf('swiftmailer.mailer.%s.plugin.redirecting', $name), $definitionDecorator)
346347
->setArguments(array(
@@ -361,7 +362,7 @@ protected function configureMailerLogging($name, array $mailer, ContainerBuilder
361362
{
362363
if ($mailer['logging']) {
363364
$container->getDefinition('swiftmailer.plugin.messagelogger.abstract');
364-
$definitionDecorator = new DefinitionDecorator('swiftmailer.plugin.messagelogger.abstract');
365+
$definitionDecorator = $this->createChildDefinition('swiftmailer.plugin.messagelogger.abstract');
365366
$container
366367
->setDefinition(sprintf('swiftmailer.mailer.%s.plugin.messagelogger', $name), $definitionDecorator)
367368
;
@@ -396,4 +397,13 @@ public function getConfiguration(array $config, ContainerBuilder $container)
396397
{
397398
return new Configuration($container->getParameter('kernel.debug'));
398399
}
400+
401+
private function createChildDefinition($id)
402+
{
403+
if (class_exists('Symfony\Component\DependencyInjection\ChildDefinition')) {
404+
return new ChildDefinition($id);
405+
}
406+
407+
return new DefinitionDecorator($id);
408+
}
399409
}

0 commit comments

Comments
 (0)