ILIAS  trunk Revision v11.0_alpha-1715-g7fc467680fb
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
class.InternalService.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 namespace ILIAS\Container;
22 
24 
26 {
27  protected static array $instance = [];
28 
29  public function __construct(
30  protected Container $DIC
31  ) {
32  }
33 
34  public function data(): InternalDataService
35  {
36  return self::$instance["data"] ??= new InternalDataService();
37  }
38 
39  public function repo(): InternalRepoService
40  {
41  return self::$instance["repo"] ??= new InternalRepoService(
42  $this->data(),
43  $this->DIC->database()
44  );
45  }
46 
47  public function domain(): InternalDomainService
48  {
49  return self::$instance["domain"] ??= new InternalDomainService(
50  $this->DIC,
51  $this->repo(),
52  $this->data(),
53  );
54  }
55 
56  public function gui(): InternalGUIService
57  {
58  return self::$instance["gui"] ??= new InternalGUIService(
59  $this->DIC,
60  $this->data(),
61  $this->domain()
62  );
63  }
64 }
Repository internal data service.
global $DIC
Definition: shib_login.php:22
__construct(protected Container $DIC)
Repository internal repo service.