Skip to content

Commit 118c45d

Browse files
committed
refactor: Split services.php into domain-specific files
Reorganized service configuration into separate files by domain: - services/factory.php - email factory - services/provider.php - email provider, default settings provider - services/renderer.php - renderer adapters - services/sender.php - sender and sender adapters - services/modifier.php - email modifier - services/console.php - debug command and dumpers All services now use dotted IDs (sylius.*) with FQCN aliases for BC.
1 parent 31e43ef commit 118c45d

File tree

8 files changed

+1098
-117
lines changed

8 files changed

+1098
-117
lines changed

src/Bundle/Resources/config/services.php

Lines changed: 7 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -13,121 +13,11 @@
1313

1414
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
1515

16-
use Sylius\Bundle\MailerBundle\Console\Command\DebugMailerCommand;
17-
use Sylius\Bundle\MailerBundle\Console\Command\Dumper\EmailDetailDumperInterface;
18-
use Sylius\Bundle\MailerBundle\Console\Command\Dumper\EmailDetailsDumper;
19-
use Sylius\Bundle\MailerBundle\Console\Command\Dumper\EmailsListDumper;
20-
use Sylius\Bundle\MailerBundle\Console\Command\Dumper\SenderDataDumper;
21-
use Sylius\Bundle\MailerBundle\Renderer\Adapter\EmailDefaultAdapter;
22-
use Sylius\Bundle\MailerBundle\Renderer\Adapter\EmailTwigAdapter;
23-
use Sylius\Bundle\MailerBundle\Sender\Adapter\DefaultAdapter;
24-
use Sylius\Bundle\MailerBundle\Sender\Adapter\SymfonyMailerAdapter;
25-
use Sylius\Component\Mailer\Factory\EmailFactory;
26-
use Sylius\Component\Mailer\Factory\EmailFactoryInterface;
27-
use Sylius\Component\Mailer\Modifier\CompositeEmailModifier;
28-
use Sylius\Component\Mailer\Modifier\EmailModifierInterface;
29-
use Sylius\Component\Mailer\Provider\DefaultSettingsProvider;
30-
use Sylius\Component\Mailer\Provider\DefaultSettingsProviderInterface;
31-
use Sylius\Component\Mailer\Provider\EmailProvider;
32-
use Sylius\Component\Mailer\Provider\EmailProviderInterface;
33-
use Sylius\Component\Mailer\Renderer\Adapter\AbstractAdapter as AbstractRendererAdapter;
34-
use Sylius\Component\Mailer\Sender\Adapter\AbstractAdapter as AbstractSenderAdapter;
35-
use Sylius\Component\Mailer\Sender\Sender;
36-
use Sylius\Component\Mailer\Sender\SenderInterface;
37-
use Symfony\Contracts\Translation\TranslatorInterface;
38-
39-
return function (ContainerConfigurator $container): void {
40-
$services = $container->services();
41-
$services->defaults()->public();
42-
43-
$services->set('sylius.factory.email', EmailFactory::class);
44-
$services->alias(EmailFactoryInterface::class, 'sylius.factory.email');
45-
46-
$services->set('sylius.email_provider', EmailProvider::class)
47-
->args([
48-
service('sylius.factory.email'),
49-
'%sylius.mailer.emails%',
50-
]);
51-
$services->alias(EmailProviderInterface::class, 'sylius.email_provider');
52-
53-
$services->set('sylius.email_sender', Sender::class)
54-
->args([
55-
service('sylius.email_renderer.adapter'),
56-
service('sylius.email_sender.adapter'),
57-
service('sylius.email_provider'),
58-
service('sylius.mailer.default_settings_provider'),
59-
service(EmailModifierInterface::class),
60-
]);
61-
$services->alias(SenderInterface::class, 'sylius.email_sender');
62-
63-
$services->set('sylius.mailer.default_settings_provider', DefaultSettingsProvider::class)
64-
->args([
65-
'%sylius.mailer.sender_name%',
66-
'%sylius.mailer.sender_address%',
67-
]);
68-
$services->alias(DefaultSettingsProviderInterface::class, 'sylius.mailer.default_settings_provider');
69-
70-
$services->set('sylius.email_renderer.adapter.abstract', AbstractRendererAdapter::class)
71-
->abstract()
72-
->call('setEventDispatcher', [service('event_dispatcher')->ignoreOnInvalid()]);
73-
74-
$services->set('sylius.email_renderer.adapter.default', EmailDefaultAdapter::class)
75-
->parent('sylius.email_renderer.adapter.abstract')
76-
->public();
77-
78-
$services->set('sylius.email_renderer.adapter.twig', EmailTwigAdapter::class)
79-
->parent('sylius.email_renderer.adapter.abstract')
80-
->public()
81-
->args([
82-
service('twig'),
83-
service('event_dispatcher')->nullOnInvalid(),
84-
]);
85-
86-
$services->set('sylius.email_sender.adapter.abstract', AbstractSenderAdapter::class)
87-
->abstract()
88-
->call('setEventDispatcher', [service('event_dispatcher')->ignoreOnInvalid()]);
89-
90-
$services->set('sylius.email_sender.adapter.default', DefaultAdapter::class)
91-
->parent('sylius.email_sender.adapter.abstract')
92-
->public();
93-
94-
$services->set('sylius.email_sender.adapter.symfony_mailer', SymfonyMailerAdapter::class)
95-
->parent('sylius.email_sender.adapter.abstract')
96-
->public()
97-
->args([
98-
service('mailer.mailer'),
99-
]);
100-
101-
$services->set(EmailModifierInterface::class, CompositeEmailModifier::class)
102-
->args([
103-
tagged_iterator('sylius_mailer.email_modifier'),
104-
]);
105-
106-
$services->set(EmailDetailDumperInterface::class, EmailDetailsDumper::class)
107-
->args([
108-
'%sylius.mailer.emails%',
109-
service(TranslatorInterface::class)->nullOnInvalid(),
110-
service('twig.loader'),
111-
]);
112-
113-
$services->set(EmailsListDumper::class)
114-
->args([
115-
'%sylius.mailer.emails%',
116-
service(TranslatorInterface::class)->nullOnInvalid(),
117-
])
118-
->tag('sylius_mailer.dumper');
119-
120-
$services->set(SenderDataDumper::class)
121-
->args([
122-
'%sylius.mailer.sender_name%',
123-
'%sylius.mailer.sender_address%',
124-
])
125-
->tag('sylius_mailer.dumper');
126-
127-
$services->set(DebugMailerCommand::class)
128-
->autoconfigure()
129-
->args([
130-
tagged_iterator('sylius_mailer.dumper'),
131-
service(EmailDetailDumperInterface::class),
132-
]);
16+
return static function (ContainerConfigurator $container): void {
17+
$container->import('services/factory.php');
18+
$container->import('services/provider.php');
19+
$container->import('services/renderer.php');
20+
$container->import('services/sender.php');
21+
$container->import('services/modifier.php');
22+
$container->import('services/console.php');
13323
};
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Sylius package.
5+
*
6+
* (c) Sylius Sp. z o.o.
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
declare(strict_types=1);
13+
14+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
15+
16+
use Sylius\Bundle\MailerBundle\Console\Command\DebugMailerCommand;
17+
use Sylius\Bundle\MailerBundle\Console\Command\Dumper\EmailDetailDumperInterface;
18+
use Sylius\Bundle\MailerBundle\Console\Command\Dumper\EmailDetailsDumper;
19+
use Sylius\Bundle\MailerBundle\Console\Command\Dumper\EmailsListDumper;
20+
use Sylius\Bundle\MailerBundle\Console\Command\Dumper\SenderDataDumper;
21+
use Symfony\Contracts\Translation\TranslatorInterface;
22+
23+
return static function (ContainerConfigurator $container): void {
24+
$services = $container->services();
25+
$services->defaults()->public();
26+
27+
$services->set('sylius.console.command.debug_mailer', DebugMailerCommand::class)
28+
->autoconfigure()
29+
->args([
30+
tagged_iterator('sylius_mailer.dumper'),
31+
service('sylius.console.command.dumper.email_details'),
32+
]);
33+
$services->alias(DebugMailerCommand::class, 'sylius.console.command.debug_mailer');
34+
35+
$services->set('sylius.console.command.dumper.email_details', EmailDetailsDumper::class)
36+
->args([
37+
'%sylius.mailer.emails%',
38+
service(TranslatorInterface::class)->nullOnInvalid(),
39+
service('twig.loader'),
40+
]);
41+
$services->alias(EmailDetailDumperInterface::class, 'sylius.console.command.dumper.email_details');
42+
43+
$services->set('sylius.console.command.dumper.emails_list', EmailsListDumper::class)
44+
->args([
45+
'%sylius.mailer.emails%',
46+
service(TranslatorInterface::class)->nullOnInvalid(),
47+
])
48+
->tag('sylius_mailer.dumper');
49+
$services->alias(EmailsListDumper::class, 'sylius.console.command.dumper.emails_list');
50+
51+
$services->set('sylius.console.command.dumper.sender_data', SenderDataDumper::class)
52+
->args([
53+
'%sylius.mailer.sender_name%',
54+
'%sylius.mailer.sender_address%',
55+
])
56+
->tag('sylius_mailer.dumper');
57+
$services->alias(SenderDataDumper::class, 'sylius.console.command.dumper.sender_data');
58+
};
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Sylius package.
5+
*
6+
* (c) Sylius Sp. z o.o.
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
declare(strict_types=1);
13+
14+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
15+
16+
use Sylius\Component\Mailer\Factory\EmailFactory;
17+
use Sylius\Component\Mailer\Factory\EmailFactoryInterface;
18+
19+
return static function (ContainerConfigurator $container): void {
20+
$services = $container->services();
21+
$services->defaults()->public();
22+
23+
$services->set('sylius.factory.email', EmailFactory::class);
24+
$services->alias(EmailFactoryInterface::class, 'sylius.factory.email');
25+
};
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Sylius package.
5+
*
6+
* (c) Sylius Sp. z o.o.
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
declare(strict_types=1);
13+
14+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
15+
16+
use Sylius\Component\Mailer\Modifier\CompositeEmailModifier;
17+
use Sylius\Component\Mailer\Modifier\EmailModifierInterface;
18+
19+
return static function (ContainerConfigurator $container): void {
20+
$services = $container->services();
21+
$services->defaults()->public();
22+
23+
$services->set('sylius.mailer.email_modifier', CompositeEmailModifier::class)
24+
->args([
25+
tagged_iterator('sylius_mailer.email_modifier'),
26+
]);
27+
$services->alias(EmailModifierInterface::class, 'sylius.mailer.email_modifier');
28+
};
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Sylius package.
5+
*
6+
* (c) Sylius Sp. z o.o.
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
declare(strict_types=1);
13+
14+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
15+
16+
use Sylius\Component\Mailer\Provider\DefaultSettingsProvider;
17+
use Sylius\Component\Mailer\Provider\DefaultSettingsProviderInterface;
18+
use Sylius\Component\Mailer\Provider\EmailProvider;
19+
use Sylius\Component\Mailer\Provider\EmailProviderInterface;
20+
21+
return static function (ContainerConfigurator $container): void {
22+
$services = $container->services();
23+
$services->defaults()->public();
24+
25+
$services->set('sylius.email_provider', EmailProvider::class)
26+
->args([
27+
service('sylius.factory.email'),
28+
'%sylius.mailer.emails%',
29+
]);
30+
$services->alias(EmailProviderInterface::class, 'sylius.email_provider');
31+
32+
$services->set('sylius.mailer.default_settings_provider', DefaultSettingsProvider::class)
33+
->args([
34+
'%sylius.mailer.sender_name%',
35+
'%sylius.mailer.sender_address%',
36+
]);
37+
$services->alias(DefaultSettingsProviderInterface::class, 'sylius.mailer.default_settings_provider');
38+
};
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Sylius package.
5+
*
6+
* (c) Sylius Sp. z o.o.
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
declare(strict_types=1);
13+
14+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
15+
16+
use Sylius\Bundle\MailerBundle\Renderer\Adapter\EmailDefaultAdapter;
17+
use Sylius\Bundle\MailerBundle\Renderer\Adapter\EmailTwigAdapter;
18+
use Sylius\Component\Mailer\Renderer\Adapter\AbstractAdapter;
19+
20+
return static function (ContainerConfigurator $container): void {
21+
$services = $container->services();
22+
$services->defaults()->public();
23+
24+
$services->set('sylius.email_renderer.adapter.abstract', AbstractAdapter::class)
25+
->abstract()
26+
->call('setEventDispatcher', [service('event_dispatcher')->ignoreOnInvalid()]);
27+
28+
$services->set('sylius.email_renderer.adapter.default', EmailDefaultAdapter::class)
29+
->parent('sylius.email_renderer.adapter.abstract')
30+
->public();
31+
32+
$services->set('sylius.email_renderer.adapter.twig', EmailTwigAdapter::class)
33+
->parent('sylius.email_renderer.adapter.abstract')
34+
->public()
35+
->args([
36+
service('twig'),
37+
service('event_dispatcher')->nullOnInvalid(),
38+
]);
39+
};
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Sylius package.
5+
*
6+
* (c) Sylius Sp. z o.o.
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
declare(strict_types=1);
13+
14+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
15+
16+
use Sylius\Bundle\MailerBundle\Sender\Adapter\DefaultAdapter;
17+
use Sylius\Bundle\MailerBundle\Sender\Adapter\SymfonyMailerAdapter;
18+
use Sylius\Component\Mailer\Sender\Adapter\AbstractAdapter;
19+
use Sylius\Component\Mailer\Sender\Sender;
20+
use Sylius\Component\Mailer\Sender\SenderInterface;
21+
22+
return static function (ContainerConfigurator $container): void {
23+
$services = $container->services();
24+
$services->defaults()->public();
25+
26+
$services->set('sylius.email_sender', Sender::class)
27+
->args([
28+
service('sylius.email_renderer.adapter'),
29+
service('sylius.email_sender.adapter'),
30+
service('sylius.email_provider'),
31+
service('sylius.mailer.default_settings_provider'),
32+
service('sylius.mailer.email_modifier'),
33+
]);
34+
$services->alias(SenderInterface::class, 'sylius.email_sender');
35+
36+
$services->set('sylius.email_sender.adapter.abstract', AbstractAdapter::class)
37+
->abstract()
38+
->call('setEventDispatcher', [service('event_dispatcher')->ignoreOnInvalid()]);
39+
40+
$services->set('sylius.email_sender.adapter.default', DefaultAdapter::class)
41+
->parent('sylius.email_sender.adapter.abstract')
42+
->public();
43+
44+
$services->set('sylius.email_sender.adapter.symfony_mailer', SymfonyMailerAdapter::class)
45+
->parent('sylius.email_sender.adapter.abstract')
46+
->public()
47+
->args([
48+
service('mailer.mailer'),
49+
]);
50+
};

0 commit comments

Comments
 (0)