Skip to content

Commit 1bd8db5

Browse files
committed
Deprecate the TwigSwiftMailer implementation
1 parent 4ef57b3 commit 1bd8db5

File tree

5 files changed

+27
-2
lines changed

5 files changed

+27
-2
lines changed

Changelog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
Changelog
22
=========
33

4+
### 3.4.0 (2024-06-25)
5+
6+
* Deprecated the TwigSwiftMailer implementation
7+
48
### 3.3.0 (2024-06-24)
59

610
* Added a mailer implementation based on symfony/mailer and Twig

docs/emails.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ The bundle comes with 3 mailer implementations. They are listed below
4242
by service id:
4343

4444
- ``fos_user.mailer.twig_symfony`` uses symfony/mailer to send emails and Twig blocks to render the message.
45-
- ``fos_user.mailer.twig_swift`` uses Swiftmailer to send emails and Twig blocks to render the message.
45+
- ``fos_user.mailer.twig_swift`` (deprecated) uses Swiftmailer to send emails and Twig blocks to render the message.
4646
- ``fos_user.mailer.noop`` is a mailer implementation which performs no operation, so no emails are sent.
4747

4848
.. note::

src/DependencyInjection/Configuration.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,17 @@ private function addServiceSection(ArrayNodeDefinition $node): void
223223
->arrayNode('service')
224224
->addDefaultsIfNotSet()
225225
->children()
226-
->scalarNode('mailer')->defaultNull()->end()
226+
->scalarNode('mailer')
227+
->defaultNull()
228+
->validate()
229+
->ifInArray(['fos_user.mailer.twig_swift'])
230+
->then(function ($v) {
231+
trigger_deprecation('friendsofsymfony/user-bundle', '3.4.0', 'The twig_swift mailer is deprecated because Swiftmailer itself is unmaintained.');
232+
233+
return $v;
234+
})
235+
->end()
236+
->end()
227237
->scalarNode('email_canonicalizer')->defaultValue('fos_user.util.canonicalizer.default')->end()
228238
->scalarNode('token_generator')->defaultValue('fos_user.util.token_generator.default')->end()
229239
->scalarNode('username_canonicalizer')->defaultValue('fos_user.util.canonicalizer.default')->end()

src/DependencyInjection/FOSUserExtension.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Symfony\Component\Config\FileLocator;
1717
use Symfony\Component\DependencyInjection\Alias;
1818
use Symfony\Component\DependencyInjection\ContainerBuilder;
19+
use Symfony\Component\DependencyInjection\Definition;
1920
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
2021
use Symfony\Component\DependencyInjection\Reference;
2122
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
@@ -77,6 +78,14 @@ public function load(array $configs, ContainerBuilder $container): void
7778
$loader->load(sprintf('%s.xml', $basename));
7879
}
7980

81+
$twigSwiftMailerDefinition = $container->getDefinition('fos_user.mailer.twig_swift');
82+
if (method_exists(Definition::class, 'getDeprecation')) {
83+
$twigSwiftMailerDefinition->setDeprecated('friendsofsymfony/user-bundle', '3.4.0', 'The "%service_id%" service is deprecated. Use a different mailer implementation instead.');
84+
} else {
85+
// BC for Symfony <5.1
86+
$twigSwiftMailerDefinition->setDeprecated('The "fos_user.mailer.twig_swift" service is deprecated. Use a different mailer implementation instead.');
87+
}
88+
8089
if (!$config['use_authentication_listener']) {
8190
$container->removeDefinition('fos_user.listener.authentication');
8291
}

src/Mailer/TwigSwiftMailer.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
/**
1919
* @author Christophe Coevoet <[email protected]>
20+
*
21+
* @deprecated
2022
*/
2123
class TwigSwiftMailer implements MailerInterface
2224
{

0 commit comments

Comments
 (0)