ILIAS  trunk Revision v12.0_alpha-1227-g7ff6d300864
MailService.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
29use ILIAS\Data\Factory as DataFactory;
37
39{
40 public function __construct(protected Container $dic)
41 {
42 }
43
44 public static function init(Container $container): void
45 {
46 $container[self::class] = static function (Container $c): self {
47 return new self($c);
48 };
49
50 $container[ilMailTemplateServiceInterface::class] = static function (Container $c): ilMailTemplateServiceInterface {
51 return new ilMailTemplateService(
52 new ilMailTemplateRepository($c->database()),
53 $c->mail()->templateEngineFactory()
54 );
55 };
56
57 $container[TemplateEngineFactoryInterface::class] = static function (Container $c): TemplateEngineFactoryInterface {
58 return $c->mail()->templateEngineFactory();
59 };
60
61 $container[MimeMailService::class] = static function (Container $c): MimeMailService {
62 return new MimeMailService($c);
63 };
64
65 $container['mail.mime.transport.factory'] = static function (Container $c): ilMailMimeTransportFactory {
66 return new ilMailMimeTransportFactory($c->settings(), $c->event());
67 };
68
69 $container['mail.mime.sender.factory'] = static function (Container $c): ilMailMimeSenderFactory {
70 return new ilMailMimeSenderFactory(
71 $c->settings(),
72 $c->mail()->templateEngineFactory()
73 );
74 };
75
76 $container['mail.texttemplates.service'] = static function (Container $c): ilMailTemplateService {
77 return new ilMailTemplateService(
78 new ilMailTemplateRepository($c->database()),
79 $c->mail()->templateEngineFactory()
80 );
81 };
82
83 $container['mail.template.placeholder.resolver'] = static function (Container $c): ilMailTemplatePlaceholderResolver {
85 $c->mail()->templateEngineFactory()->getBasicEngine()
86 );
87 };
88
89 $container[AutoresponderService::class] = static function (Container $c): AutoresponderService {
90 return new AutoresponderServiceImpl(
91 (int) $c->settings()->get(
92 'mail_auto_responder_idle_time',
94 ),
95 false,
96 new AutoresponderDatabaseRepository($c->database()),
97 (new DataFactory())->clock()->utc()
98 );
99 };
100
101 $container[ilMailTemplatePlaceholderResolver::class] = static function (Container $c): ilMailTemplatePlaceholderResolver {
103 $c->mail()->templateEngineFactory()->getBasicEngine()
104 );
105 };
106
107 $container[ilMailTemplatePlaceholderToEmptyResolver::class] = static function (Container $c): ilMailTemplatePlaceholderToEmptyResolver {
109 };
110
111 $container['mail.template_engine.factory'] = static function (Container $c): MustacheTemplateEngineFactory {
113 };
114
115 $container['mail.signature.service'] = static function (Container $c): MailSignatureService {
116 return new MailSignatureService(
117 $c->mail()->templateEngineFactory(),
118 $c->clientIni(),
119 $c->language(),
120 $c->settings()
121 );
122 };
123 }
124
125 public function mime(): MimeMailService
126 {
127 return $this->dic[MimeMailService::class];
128 }
129
131 {
132 return $this->dic[AutoresponderService::class];
133 }
134
136 {
137 return $this->dic[ilMailTemplateServiceInterface::class];
138 }
139
141 {
142 return $this->dic[ilMailTemplatePlaceholderResolver::class];
143 }
144
146 {
147 return $this->dic[ilMailTemplatePlaceholderToEmptyResolver::class];
148 }
149
151 {
152 return $this->dic['mail.template_engine.factory'];
153 }
154
156 {
157 return $this->dic['mail.signature.service'];
158 }
159}
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:36
Builds data types.
Definition: Factory.php:36
__construct(protected Container $dic)
Definition: MailService.php:40
static init(Container $container)
Definition: MailService.php:44
$c
Definition: deliver.php:25
Factory interface for creating template engine instances.
$dic
Definition: ltiresult.php:33
$container
@noRector
Definition: wac.php:37