Passed
Push — master ( b61354...af9f4d )
by Julito
19:31
created

Container::getUserToJsonNormalizer()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
/* For licensing terms, see /license.txt */
6
7
namespace Chamilo\CoreBundle\Framework;
8
9
use Chamilo\CoreBundle\Component\Editor\Editor;
10
use Chamilo\CoreBundle\Repository\AssetRepository;
11
use Chamilo\CoreBundle\Repository\CareerRepository;
12
use Chamilo\CoreBundle\Repository\CourseCategoryRepository;
13
use Chamilo\CoreBundle\Repository\GradeBookCategoryRepository;
14
use Chamilo\CoreBundle\Repository\Node\AccessUrlRepository;
15
use Chamilo\CoreBundle\Repository\Node\CourseRepository;
16
use Chamilo\CoreBundle\Repository\Node\IllustrationRepository;
17
use Chamilo\CoreBundle\Repository\Node\MessageAttachmentRepository;
18
use Chamilo\CoreBundle\Repository\Node\PersonalFileRepository;
19
use Chamilo\CoreBundle\Repository\Node\UsergroupRepository;
20
use Chamilo\CoreBundle\Repository\Node\UserRepository;
21
use Chamilo\CoreBundle\Repository\PromotionRepository;
22
use Chamilo\CoreBundle\Repository\SequenceRepository;
23
use Chamilo\CoreBundle\Repository\SequenceResourceRepository;
24
use Chamilo\CoreBundle\Repository\SessionRepository;
25
use Chamilo\CoreBundle\Repository\SysAnnouncementRepository;
26
use Chamilo\CoreBundle\Serializer\UserToJsonNormalizer;
27
use Chamilo\CoreBundle\Settings\SettingsManager;
28
use Chamilo\CoreBundle\ToolChain;
29
use Chamilo\CourseBundle\Repository\CAnnouncementAttachmentRepository;
30
use Chamilo\CourseBundle\Repository\CAnnouncementRepository;
31
use Chamilo\CourseBundle\Repository\CAttendanceRepository;
32
use Chamilo\CourseBundle\Repository\CBlogRepository;
33
use Chamilo\CourseBundle\Repository\CCalendarEventAttachmentRepository;
34
use Chamilo\CourseBundle\Repository\CCalendarEventRepository;
35
use Chamilo\CourseBundle\Repository\CCourseDescriptionRepository;
36
use Chamilo\CourseBundle\Repository\CDocumentRepository;
37
use Chamilo\CourseBundle\Repository\CExerciseCategoryRepository;
38
use Chamilo\CourseBundle\Repository\CForumAttachmentRepository;
39
use Chamilo\CourseBundle\Repository\CForumCategoryRepository;
40
use Chamilo\CourseBundle\Repository\CForumPostRepository;
41
use Chamilo\CourseBundle\Repository\CForumRepository;
42
use Chamilo\CourseBundle\Repository\CForumThreadRepository;
43
use Chamilo\CourseBundle\Repository\CGlossaryRepository;
44
use Chamilo\CourseBundle\Repository\CGroupCategoryRepository;
45
use Chamilo\CourseBundle\Repository\CGroupRepository;
46
use Chamilo\CourseBundle\Repository\CLinkCategoryRepository;
47
use Chamilo\CourseBundle\Repository\CLinkRepository;
48
use Chamilo\CourseBundle\Repository\CLpCategoryRepository;
49
use Chamilo\CourseBundle\Repository\CLpItemRepository;
50
use Chamilo\CourseBundle\Repository\CLpRepository;
51
use Chamilo\CourseBundle\Repository\CNotebookRepository;
52
use Chamilo\CourseBundle\Repository\CQuizQuestionCategoryRepository;
53
use Chamilo\CourseBundle\Repository\CQuizQuestionRepository;
54
use Chamilo\CourseBundle\Repository\CQuizRepository;
55
use Chamilo\CourseBundle\Repository\CShortcutRepository;
56
use Chamilo\CourseBundle\Repository\CStudentPublicationAssignmentRepository;
57
use Chamilo\CourseBundle\Repository\CStudentPublicationCommentRepository;
58
use Chamilo\CourseBundle\Repository\CStudentPublicationCorrectionRepository;
59
use Chamilo\CourseBundle\Repository\CStudentPublicationRepository;
60
use Chamilo\CourseBundle\Repository\CSurveyQuestionRepository;
61
use Chamilo\CourseBundle\Repository\CSurveyRepository;
62
use Chamilo\CourseBundle\Repository\CThematicAdvanceRepository;
63
use Chamilo\CourseBundle\Repository\CThematicPlanRepository;
64
use Chamilo\CourseBundle\Repository\CThematicRepository;
65
use Chamilo\CourseBundle\Repository\CWikiRepository;
66
use Chamilo\CourseBundle\Settings\SettingsCourseManager;
67
use Chamilo\LtiBundle\Repository\ExternalToolRepository;
68
use Database;
69
use Doctrine\ORM\EntityManager;
70
use Symfony\Component\DependencyInjection\ContainerInterface;
71
use Symfony\Component\Form\FormFactory;
72
use Symfony\Component\HttpFoundation\Request;
73
use Symfony\Component\HttpFoundation\Session\Session;
74
use Symfony\Component\Mailer\Mailer;
75
use Symfony\Component\Routing\Router;
76
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
77
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
78
use Symfony\Component\Security\Core\Authorization\AuthorizationChecker;
79
use Symfony\Contracts\Translation\TranslatorInterface;
80
use Twig\Environment;
81
82
/**
83
 * Symfony services for the legacy Chamilo code.
84
 */
85
class Container
86
{
87
    public static ?ContainerInterface $container = null;
88
    public static ?Request $request = null;
89
    public static ?TranslatorInterface $translator = null;
90
    public static Environment $twig;
91
    public static string $legacyTemplate = '@ChamiloCore/Layout/layout_one_col.html.twig';
92
93
    public static function setContainer(ContainerInterface $container): void
94
    {
95
        self::$container = $container;
96
    }
97
98
    public static function getParameter(string $parameter)
99
    {
100
        if (self::$container->hasParameter($parameter)) {
0 ignored issues
show
Bug introduced by
The method hasParameter() does not exist on null. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

100
        if (self::$container->/** @scrutinizer ignore-call */ hasParameter($parameter)) {

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
101
            return self::$container->getParameter($parameter);
102
        }
103
104
        return false;
105
    }
106
107
    /**
108
     * @return string
109
     */
110
    public static function getEnvironment()
111
    {
112
        return self::$container->get('kernel')->getEnvironment();
113
    }
114
115
    public static function getLogDir(): string
116
    {
117
        return self::$container->get('kernel')->getLogDir();
118
    }
119
120
    public static function getCacheDir(): string
121
    {
122
        return self::$container->get('kernel')->getCacheDir().'/';
123
    }
124
125
    /**
126
     * @return string
127
     */
128
    public static function getProjectDir()
129
    {
130
        if (null !== self::$container) {
131
            return self::$container->get('kernel')->getProjectDir().'/';
132
        }
133
134
        return str_replace('\\', '/', realpath(__DIR__.'/../../../')).'/';
135
    }
136
137
    /**
138
     * @return bool
139
     */
140
    public static function isInstalled()
141
    {
142
        return self::$container->get('kernel')->isInstalled();
143
    }
144
145
    /**
146
     * @return Environment
147
     */
148
    public static function getTwig()
149
    {
150
        return self::$twig;
151
    }
152
153
    /**
154
     * @return Editor
155
     */
156
    public static function getHtmlEditor()
157
    {
158
        return self::$container->get('chamilo_core.html_editor');
159
    }
160
161
    /**
162
     * @return null|Request
163
     */
164
    public static function getRequest()
165
    {
166
        if (null === self::$container) {
167
            return null;
168
        }
169
170
        if (!empty(self::$request)) {
171
            return self::$request;
172
        }
173
174
        return self::$container->get('request_stack')->getCurrentRequest();
175
    }
176
177
    public static function setRequest(Request $request): void
178
    {
179
        self::$request = $request;
180
    }
181
182
    /**
183
     * @return false|Session
184
     */
185
    public static function getSession()
186
    {
187
        if (null !== self::$container) {
188
            return self::$container->get('session');
189
        }
190
191
        return false;
192
    }
193
194
    /**
195
     * @return AuthorizationChecker
196
     */
197
    public static function getAuthorizationChecker()
198
    {
199
        return self::$container->get('security.authorization_checker');
200
    }
201
202
    /**
203
     * @return TokenStorage|TokenStorageInterface
204
     */
205
    public static function getTokenStorage()
206
    {
207
        return self::$container->get('security.token_storage');
208
    }
209
210
    /**
211
     * @return TranslatorInterface
212
     */
213
    public static function getTranslator()
214
    {
215
        if (null !== self::$translator) {
216
            return self::$translator;
217
        }
218
219
        //if (self::$container->has('translator')) {
220
        return self::$container->get('translator');
221
        //}
222
    }
223
224
    public static function getMailer(): Mailer
225
    {
226
        return self::$container->get(Mailer::class);
227
    }
228
229
    public static function getSettingsManager(): SettingsManager
230
    {
231
        return self::$container->get('chamilo.settings.manager');
232
    }
233
234
    public static function getCourseSettingsManager(): SettingsCourseManager
235
    {
236
        return self::$container->get(SettingsCourseManager::class);
237
    }
238
239
    /**
240
     * @return EntityManager
241
     */
242
    public static function getEntityManager()
243
    {
244
        return Database::getManager();
245
    }
246
247
    public static function getAssetRepository(): AssetRepository
248
    {
249
        return self::$container->get(AssetRepository::class);
250
    }
251
252
    public static function getAttendanceRepository(): CAttendanceRepository
253
    {
254
        return self::$container->get(CAttendanceRepository::class);
255
    }
256
257
    public static function getAnnouncementRepository(): CAnnouncementRepository
258
    {
259
        return self::$container->get(CAnnouncementRepository::class);
260
    }
261
262
    public static function getAccessUrlRepository(): AccessUrlRepository
263
    {
264
        return self::$container->get(AccessUrlRepository::class);
265
    }
266
267
    public static function getAnnouncementAttachmentRepository(): CAnnouncementAttachmentRepository
268
    {
269
        return self::$container->get(CAnnouncementAttachmentRepository::class);
270
    }
271
272
    public static function getBlogRepository(): CBlogRepository
273
    {
274
        return self::$container->get(CBlogRepository::class);
275
    }
276
277
    public static function getCourseRepository(): CourseRepository
278
    {
279
        return self::$container->get(CourseRepository::class);
280
    }
281
282
    public static function getCareerRepository(): CareerRepository
283
    {
284
        return self::$container->get(CareerRepository::class);
285
    }
286
287
    public static function getCourseCategoryRepository(): CourseCategoryRepository
288
    {
289
        return self::$container->get(CourseCategoryRepository::class);
290
    }
291
292
    public static function getCourseDescriptionRepository(): CCourseDescriptionRepository
293
    {
294
        return self::$container->get(CCourseDescriptionRepository::class);
295
    }
296
297
    public static function getCalendarEventRepository(): CCalendarEventRepository
298
    {
299
        return self::$container->get(CCalendarEventRepository::class);
300
    }
301
302
    public static function getCalendarEventAttachmentRepository(): CCalendarEventAttachmentRepository
303
    {
304
        return self::$container->get(CCalendarEventAttachmentRepository::class);
305
    }
306
307
    public static function getDocumentRepository(): CDocumentRepository
308
    {
309
        return self::$container->get(CDocumentRepository::class);
310
    }
311
312
    public static function getExerciseCategoryRepository(): CExerciseCategoryRepository
313
    {
314
        return self::$container->get(CExerciseCategoryRepository::class);
315
    }
316
317
    public static function getGlossaryRepository(): CGlossaryRepository
318
    {
319
        return self::$container->get(CGlossaryRepository::class);
320
    }
321
322
    public static function getGradeBookCategoryRepository(): GradeBookCategoryRepository
323
    {
324
        return self::$container->get(GradeBookCategoryRepository::class);
325
    }
326
327
    public static function getGroupRepository(): CGroupRepository
328
    {
329
        return self::$container->get(CGroupRepository::class);
330
    }
331
332
    public static function getGroupCategoryRepository(): CGroupCategoryRepository
333
    {
334
        return self::$container->get(CGroupCategoryRepository::class);
335
    }
336
337
    public static function getForumRepository(): CForumRepository
338
    {
339
        return self::$container->get(CForumRepository::class);
340
    }
341
342
    public static function getForumCategoryRepository(): CForumCategoryRepository
343
    {
344
        return self::$container->get(CForumCategoryRepository::class);
345
    }
346
347
    public static function getForumPostRepository(): CForumPostRepository
348
    {
349
        return self::$container->get(CForumPostRepository::class);
350
    }
351
352
    public static function getForumAttachmentRepository(): CForumAttachmentRepository
353
    {
354
        return self::$container->get(CForumAttachmentRepository::class);
355
    }
356
357
    public static function getForumThreadRepository(): CForumThreadRepository
358
    {
359
        return self::$container->get(CForumThreadRepository::class);
360
    }
361
362
    public static function getIllustrationRepository(): IllustrationRepository
363
    {
364
        return self::$container->get(IllustrationRepository::class);
365
    }
366
367
    public static function getQuizRepository(): CQuizRepository
368
    {
369
        return self::$container->get(CQuizRepository::class);
370
    }
371
372
    public static function getQuestionRepository(): CQuizQuestionRepository
373
    {
374
        return self::$container->get(CQuizQuestionRepository::class);
375
    }
376
377
    public static function getQuestionCategoryRepository(): CQuizQuestionCategoryRepository
378
    {
379
        return self::$container->get(CQuizQuestionCategoryRepository::class);
380
    }
381
382
    public static function getLinkRepository(): CLinkRepository
383
    {
384
        return self::$container->get(CLinkRepository::class);
385
    }
386
387
    public static function getLinkCategoryRepository(): CLinkCategoryRepository
388
    {
389
        return self::$container->get(CLinkCategoryRepository::class);
390
    }
391
392
    public static function getLpRepository(): CLpRepository
393
    {
394
        return self::$container->get(CLpRepository::class);
395
    }
396
397
    public static function getLpItemRepository(): CLpItemRepository
398
    {
399
        return self::$container->get(CLpItemRepository::class);
400
    }
401
402
    public static function getLpCategoryRepository(): CLpCategoryRepository
403
    {
404
        return self::$container->get(CLpCategoryRepository::class);
405
    }
406
407
    public static function getMessageAttachmentRepository(): MessageAttachmentRepository
408
    {
409
        return self::$container->get(MessageAttachmentRepository::class);
410
    }
411
412
    public static function getNotebookRepository(): CNotebookRepository
413
    {
414
        return self::$container->get(CNotebookRepository::class);
415
    }
416
417
    public static function getPersonalFileRepository(): PersonalFileRepository
418
    {
419
        return self::$container->get(PersonalFileRepository::class);
420
    }
421
422
    public static function getPromotionRepository(): PromotionRepository
423
    {
424
        return self::$container->get(PromotionRepository::class);
425
    }
426
427
    public static function getUserRepository(): UserRepository
428
    {
429
        return self::$container->get(UserRepository::class);
430
    }
431
432
    public static function getUsergroupRepository(): UsergroupRepository
433
    {
434
        return self::$container->get(UsergroupRepository::class);
435
    }
436
437
    public static function getUserToJsonNormalizer(): UserToJsonNormalizer
438
    {
439
        return self::$container->get(UserToJsonNormalizer::class);
440
    }
441
442
    public static function getShortcutRepository(): CShortcutRepository
443
    {
444
        return self::$container->get(CShortcutRepository::class);
445
    }
446
447
    public static function getStudentPublicationRepository(): CStudentPublicationRepository
448
    {
449
        return self::$container->get(CStudentPublicationRepository::class);
450
    }
451
452
    public static function getStudentPublicationAssignmentRepository(): CStudentPublicationAssignmentRepository
453
    {
454
        return self::$container->get(CStudentPublicationAssignmentRepository::class);
455
    }
456
457
    public static function getStudentPublicationCommentRepository(): CStudentPublicationCommentRepository
458
    {
459
        return self::$container->get(CStudentPublicationCommentRepository::class);
460
    }
461
462
    public static function getStudentPublicationCorrectionRepository(): CStudentPublicationCorrectionRepository
463
    {
464
        return self::$container->get(CStudentPublicationCorrectionRepository::class);
465
    }
466
467
    public static function getSequenceResourceRepository(): SequenceResourceRepository
468
    {
469
        return self::$container->get(SequenceResourceRepository::class);
470
    }
471
472
    public static function getSequenceRepository(): SequenceRepository
473
    {
474
        return self::$container->get(SequenceRepository::class);
475
    }
476
477
    public static function getSessionRepository(): SessionRepository
478
    {
479
        return self::$container->get(SessionRepository::class);
480
    }
481
482
    public static function getSurveyRepository(): CSurveyRepository
483
    {
484
        return self::$container->get(CSurveyRepository::class);
485
    }
486
487
    public static function getSurveyQuestionRepository(): CSurveyQuestionRepository
488
    {
489
        return self::$container->get(CSurveyQuestionRepository::class);
490
    }
491
492
    public static function getSysAnnouncementRepository(): SysAnnouncementRepository
493
    {
494
        return self::$container->get(SysAnnouncementRepository::class);
495
    }
496
497
    public static function getThematicRepository(): CThematicRepository
498
    {
499
        return self::$container->get(CThematicRepository::class);
500
    }
501
502
    public static function getThematicPlanRepository(): CThematicPlanRepository
503
    {
504
        return self::$container->get(CThematicPlanRepository::class);
505
    }
506
507
    public static function getThematicAdvanceRepository(): CThematicAdvanceRepository
508
    {
509
        return self::$container->get(CThematicAdvanceRepository::class);
510
    }
511
512
    public static function getWikiRepository(): CWikiRepository
513
    {
514
        return self::$container->get(CWikiRepository::class);
515
    }
516
517
    public static function getFormFactory(): FormFactory
518
    {
519
        return self::$container->get('form.factory');
520
    }
521
522
    public static function getExternalToolRepository(): ExternalToolRepository
523
    {
524
        return self::$container->get(ExternalToolRepository::class);
525
    }
526
527
    /**
528
     * @param string $type error|success|warning|danger
529
     */
530
    public static function addFlash(string $message, string $type = 'success'): void
531
    {
532
        $session = self::getSession();
533
        $session->getFlashBag()->add($type, $message);
534
    }
535
536
    public static function getRouter(): Router
537
    {
538
        return self::$container->get('router');
539
    }
540
541
    public static function getToolChain(): ToolChain
542
    {
543
        return self::$container->get(ToolChain::class);
544
    }
545
546
    public static function setLegacyServices(ContainerInterface $container): void
547
    {
548
        $doctrine = $container->get('doctrine');
549
        Database::setConnection($doctrine->getConnection());
550
        /** @var EntityManager $em */
551
        $em = $doctrine->getManager();
552
        Database::setManager($em);
553
    }
554
}
555