ILIAS  trunk Revision v11.0_alpha-1723-g8e69f309bab
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
Services.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
30 use ILIAS\MetaData\Paths\Services\Services as PathServices;
31 use ILIAS\MetaData\Structure\Services\Services as StructureServices;
40 use ILIAS\MetaData\Repository\Services\Services as RepositoryServices;
43 use ILIAS\MetaData\Manipulator\Services\Services as ManipulatorServices;
44 use ILIAS\MetaData\Presentation\Services\Services as PresentationServices;
45 use ILIAS\MetaData\Vocabularies\Services\Services as VocabulariesServices;
46 
47 class Services
48 {
55 
56  protected GlobalContainer $dic;
57  protected PathServices $path_services;
58  protected StructureServices $structure_services;
59  protected RepositoryServices $repository_services;
60  protected ManipulatorServices $manipulator_services;
61  protected PresentationServices $presentation_services;
62  protected VocabulariesServices $vocabularies_services;
63 
64  public function __construct(
65  GlobalContainer $dic,
66  PathServices $path_services,
67  StructureServices $structure_services,
68  RepositoryServices $repository_services,
69  ManipulatorServices $manipulator_services,
70  PresentationServices $presentation_services,
71  VocabulariesServices $vocabularies_services
72  ) {
73  $this->dic = $dic;
74  $this->path_services = $path_services;
75  $this->structure_services = $structure_services;
76  $this->repository_services = $repository_services;
77  $this->manipulator_services = $manipulator_services;
78  $this->presentation_services = $presentation_services;
79  $this->vocabularies_services = $vocabularies_services;
80  }
81 
82  public function presenter(): PresenterInterface
83  {
84  if (isset($this->presenter)) {
85  return $this->presenter;
86  }
87  return $this->presenter = new Presenter(
88  $utilities = new Utilities(
89  $this->presentation_services->utilities()
90  ),
91  $data = new Data(
92  $this->presentation_services->utilities(),
93  $this->presentation_services->data(),
94  $this->vocabularies_services->presentation()
95  ),
96  new Elements(
97  $data,
98  $this->dictionary(),
99  $this->path_services->navigatorFactory(),
100  $this->presentation_services->elements()
101  ),
102  );
103  }
104 
105  public function dictionary(): DictionaryInterface
106  {
107  if (isset($this->dictionary)) {
108  return $this->dictionary;
109  }
110  return $this->dictionary = (new LOMDictionaryInitiator(
111  new TagFactory($this->path_services->pathFactory()),
112  $this->path_services->pathFactory(),
113  $this->path_services->navigatorFactory(),
114  $this->structure_services->structure()
115  ))->get();
116  }
117 
119  {
120  if (isset($this->link_factory)) {
121  return $this->link_factory;
122  }
123  return $this->link_factory = new LinkFactory(
124  $this->dic->ctrl(),
125  new DataFactory()
126  );
127  }
128 
130  {
131  if (isset($this->request_parser)) {
132  return $this->request_parser;
133  }
134  return $this->request_parser = new RequestParser(
135  $this->dic->http(),
136  $this->dic->refinery(),
137  $this->path_services->pathFactory()
138  );
139  }
140 
141  public function manipulator(): Manipulator
142  {
143  if (isset($this->manipulator)) {
144  return $this->manipulator;
145  }
146  return $this->manipulator = new Manipulator(
147  $this->manipulator_services->manipulator(),
148  $this->path_services->navigatorFactory(),
149  $this->repository_services->repository(),
150  $this->manipulator_services->scaffoldProvider()
151  );
152  }
153 
155  {
156  if (isset($this->observer_handler)) {
158  }
159  return $this->observer_handler = new ObserverHandler();
160  }
161 }
RequestParserInterface $request_parser
Definition: Services.php:52
ObserverHandlerInterface $observer_handler
Definition: Services.php:53
PresentationServices $presentation_services
Definition: Services.php:61
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
__construct(GlobalContainer $dic, PathServices $path_services, StructureServices $structure_services, RepositoryServices $repository_services, ManipulatorServices $manipulator_services, PresentationServices $presentation_services, VocabulariesServices $vocabularies_services)
Definition: Services.php:64
VocabulariesServices $vocabularies_services
Definition: Services.php:62
LinkFactoryInterface $link_factory
Definition: Services.php:51
RepositoryServices $repository_services
Definition: Services.php:59
ManipulatorServices $manipulator_services
Definition: Services.php:60