ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
TestDIC.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21namespace ILIAS\Test;
22
25use ILIAS\Test\Results\Data\Repository as TestResultRepository;
39use ILIAS\Test\Settings\GlobalSettings\Repository as GlobalSettingsRepository;
45use ILIAS\Test\Logging\Factory as InteractionFactory;
46use ILIAS\Test\ExportImport\Factory as ExportImportFactory;
47use ILIAS\Test\ExportImport\DBRepository as ExportImportRepository;
48use ILIAS\Test\Questions\Properties\Repository as TestQuestionsRepository;
49use ILIAS\Test\Questions\Properties\DatabaseRepository as TestQuestionsDatabaseRepository;
50use ILIAS\Test\Results\Data\Factory as ResultsDataFactory;
51use ILIAS\Test\Results\Presentation\Factory as ResultsPresentationFactory;
54use ILIAS\TestQuestionPool\RequestDataCollector as QPLRequestDataCollector;
55use ILIAS\Data\Factory as DataFactory;
56use ILIAS\DI\Container as ILIASContainer;
57use Pimple\Container as PimpleContainer;
58
59class TestDIC extends PimpleContainer
60{
61 protected static ?self $dic = null;
62 protected static ?PimpleContainer $specific_dic = null;
63
64 public static function dic(): self
65 {
66 if (!self::$dic) {
67 global $DIC;
69 }
70 return self::$dic;
71 }
72
73 protected static function buildDIC(ILIASContainer $DIC): self
74 {
75 $dic = new self();
76 $dic['shuffler'] = static fn($c): \ilTestShuffler =>
77 new \ilTestShuffler($DIC['refinery']);
78
79 $dic['title_columns_builder'] = static fn($c): TitleColumnsBuilder =>
81 $c['question.general_properties.repository'],
82 $DIC['ilCtrl'],
83 $DIC['ilAccess'],
84 $DIC['lng'],
85 $DIC['static_url'],
86 $DIC['ui.factory'],
87 $DIC['refinery']
88 );
89
90 $dic['results.data.factory'] = static fn($c): ResultsDataFactory =>
91 new ResultsDataFactory(
92 $c['shuffler'],
93 $DIC['ui.factory'],
94 $DIC['ui.renderer']
95 );
96
97 $dic['results.presentation.factory'] = static fn($c): ResultsPresentationFactory =>
98 new ResultsPresentationFactory(
99 $DIC['ui.factory'],
100 $DIC['ui.renderer'],
101 $DIC['refinery'],
102 new DataFactory(),
103 $DIC['http'],
104 $DIC['lng']
105 );
106
107 $dic['results.toplist.repository'] = static fn($c): TestTopListRepository =>
108 new TestTopListRepository($DIC['ilDB']);
109
110 $dic['results.data.repository'] = static fn($c): TestResultRepository =>
111 new TestResultRepository(
112 $DIC->database(),
113 $DIC->refinery(),
114 $c['marks.repository'],
115 $DIC->globalCache()
116 );
117
118 $dic['settings.factory'] = static fn($c): SettingsFactory =>
119 new SettingsFactory();
120
121 $dic['settings.main.repository'] = static fn($c): MainSettingsRepository =>
122 new MainSettingsDatabaseRepository($DIC->database(), $c['settings.factory']);
123
124 $dic['settings.scoring.repository'] = static fn($c): ScoreSettingsRepository =>
125 new ScoreSettingsDatabaseRepository($DIC->database(), $c['settings.factory']);
126
127 $dic['settings.personal_templates.repository'] = static fn($c): PersonalSettingsRepository =>
129 $DIC->database(),
130 $DIC->user(),
131 $c['settings.factory']
132 );
133
134 $dic['settings.personal_templates.exporter'] = static fn($c): PersonalSettingsExporter =>
136 $DIC['file_delivery'],
137 $c['settings.personal_templates.repository'],
138 $c['settings.main.repository'],
139 $c['settings.scoring.repository'],
140 $c['marks.repository']
141 );
142
143 $dic['participant.access_filter.factory'] = static fn($c): \ilTestParticipantAccessFilterFactory =>
144 new \ilTestParticipantAccessFilterFactory($DIC['ilAccess']);
145
146 $dic['scoring.manual.done_helper'] = static fn($c): TestManScoringDoneHelper =>
148
149 $dic['marks.factory'] = static fn($c): MarkSchemaFactory =>
150 new MarkSchemaFactory();
151
152 $dic['marks.repository'] = static fn($c): MarksRepository =>
153 new MarksDatabaseRepository($DIC['ilDB'], $c['marks.factory']);
154
155 $dic['request_data_collector'] = static fn($c): RequestDataCollector =>
157 $DIC['http'],
158 $DIC['refinery']
159 );
160
161 $dic['response_handler'] = static fn($c): ResponseHandler =>
162 new ResponseHandler($DIC['http'], );
163
164 $dic['settings.global.repository'] = static fn($c): GlobalSettingsRepository =>
165 new GlobalSettingsRepository($DIC['ilSetting'], new \ilSetting('assessment'));
166
167 $dic['logging.settings'] = static fn($c): TestLoggingSettings =>
168 $c['settings.global.repository']->getLoggingSettings();
169
170 $dic['logging.factory'] = static fn($c): InteractionFactory =>
171 new InteractionFactory();
172
173 $dic['logging.repository'] = static fn($c): TestLoggingRepository =>
175 $c['logging.factory'],
176 $DIC['ilDB']
177 );
178
179 $dic['logging.information_generator'] = static fn($c): Logging\AdditionalInformationGenerator =>
181 (new \ilMustacheFactory())->getBasicEngine(),
182 $DIC['lng'],
183 $DIC['ui.factory'],
184 $DIC['refinery'],
185 $c['question.general_properties.repository']
186 );
187
188 $dic['logging.logger'] = static fn($c): TestLogger =>
189 new TestLogger(
190 $c['logging.settings'],
191 $c['logging.repository'],
192 $c['logging.factory'],
193 $c['logging.information_generator'],
195 );
196
197 $dic['logging.viewer'] = static fn($c): TestLogViewer =>
198 new TestLogViewer(
199 $c['logging.repository'],
200 $c['logging.logger'],
201 $c['title_columns_builder'],
202 $c['question.general_properties.repository'],
203 $DIC['http']->request(),
204 $DIC['http']->wrapper()->query(),
205 $DIC->uiService(),
206 $DIC['ui.factory'],
207 $DIC['ui.renderer'],
208 $DIC['refinery'],
209 $DIC['lng'],
210 $DIC['tpl'],
211 $DIC['file_delivery']->delivery(),
212 $DIC['ilUser']
213 );
214
215 $dic['exportimport.factory'] = static fn($c): ExportImportFactory =>
216 new ExportImportFactory(
217 $DIC['lng'],
218 $DIC['ilDB'],
219 $DIC['ilBench'],
220 $DIC['tpl'],
221 $c['logging.logger'],
222 $DIC['tree'],
223 $DIC['component.repository'],
224 $DIC['component.factory'],
225 $DIC['file_delivery'],
226 $DIC['ilUser'],
227 $c['question.general_properties.repository'],
228 $DIC['resource_storage'],
229 );
230
231 $dic['exportimport.repository'] = static fn($c): ExportImportRepository =>
232 new ExportImportRepository(
233 $DIC['ilDB']
234 );
235
236 $dic['questions.properties.repository'] = static fn($c): TestQuestionsRepository =>
237 new TestQuestionsDatabaseRepository(
238 $DIC['ilDB'],
239 $c['question.general_properties.repository']
240 );
241
242 $dic['question.general_properties.repository'] = static fn($c): GeneralQuestionPropertiesRepository =>
244 $DIC['ilDB'],
245 $DIC['component.factory'],
246 $DIC['component.repository']
247 );
248
249 $dic['question.request_data_wrapper'] = static fn($c): QPLRequestDataCollector =>
250 new QPLRequestDataCollector(
251 $DIC->http(),
252 $DIC['refinery'],
253 $DIC['upload']
254 );
255
256 $dic['participant.repository'] = static fn($c): ParticipantRepository =>
257 new ParticipantRepository($DIC['ilDB']);
258
259 $dic['gui.factory'] = static fn($c): GUIFactory =>
260 new GUIFactory($DIC, $c);
261
262 return $dic;
263 }
264}
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:36
Builds data types.
Definition: Factory.php:36
static PimpleContainer $specific_dic
Definition: TestDIC.php:62
static self $dic
Definition: TestDIC.php:61
static buildDIC(ILIASContainer $DIC)
Definition: TestDIC.php:73
static dic()
Definition: TestDIC.php:64
static getLogger(string $a_component_id)
Get component logger.
ILIAS Setting Class.
$c
Definition: deliver.php:25
$dic
Definition: ltiresult.php:33
global $DIC
Definition: shib_login.php:26