1<?php 2 3namespace ILIAS\BackgroundTasks\Dependencies\DependencyMap; 4 5use ILIAS\BackgroundTasks\Dependencies\Injector; 6use ILIAS\BackgroundTasks\Persistence; 7use ILIAS\BackgroundTasks\Task\TaskFactory; 8use ILIAS\DI\Container; 9 10/** 11 * Class BaseDependencyMap 12 * 13 * @package ILIAS\BackgroundTasks\Dependencies 14 * 15 * @author Oskar Truffer <ot@studer-raimann.ch> 16 */ 17class BaseDependencyMap extends EmptyDependencyMap 18{ 19 protected $map; 20 21 22 public function __construct() 23 { 24 $this->maps = [[$this, 'resolveBaseDependencies']]; 25 } 26 27 28 protected function resolveBaseDependencies(Container $DIC, $fullyQualifiedDomainName, $for) 29 { 30 // wow, why a switch statement and not an array? 31 // because we don't really want type unsafe array access on $DIC. 32 switch ($fullyQualifiedDomainName) { 33 case \ilDBInterface::class: 34 return $DIC->database(); 35 case \ilDB::class: 36 return $DIC->database(); 37 case \ilRbacAdmin::class: 38 return $DIC->rbac()->admin(); 39 case \ilRbacReview::class: 40 return $DIC->rbac()->review(); 41 case \ilRbacSystem::class: 42 return $DIC->rbac()->system(); 43 case \ilAccessHandler::class: 44 return $DIC->access(); 45 case \ilCtrl::class: 46 return $DIC->ctrl(); 47 case \ilObjUser::class: 48 return $DIC->user(); 49 case \ilTree::class: 50 return $DIC->repositoryTree(); 51 case \ilLanguage::class: 52 return $DIC->language(); 53 case \ilLoggerFactory::class: 54 return $DIC["ilLoggerFactory"]; 55 case \ilLogger::class: 56 return $DIC->logger()->root(); 57 case \ilToolbarGUI::class: 58 return $DIC->toolbar(); 59 case \ilTabsGUI::class: 60 return $DIC->tabs(); 61 case Injector::class: 62 return $DIC->backgroundTasks()->injector(); 63 case \ilSetting::class: 64 return $DIC->settings(); 65 case \ILIAS\UI\Factory::class: 66 return $DIC->ui()->factory(); 67 case \ILIAS\UI\Renderer::class: 68 return $DIC->ui()->renderer(); 69 case \ilTemplate::class: 70 return $DIC->ui()->mainTemplate(); 71 case Persistence::class: 72 return $DIC->backgroundTasks()->persistence(); 73 case TaskFactory::class: 74 return $DIC->backgroundTasks()->taskFactory(); 75 case Container::class: 76 return $DIC; 77 } 78 } 79} 80