ILIAS  trunk Revision v11.0_alpha-1753-gb21ca8c4367
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
Setup.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 namespace ILIAS;
22 
24 
25 class Setup implements Component\Component
26 {
27  public function init(
28  array | \ArrayAccess &$define,
29  array | \ArrayAccess &$implement,
30  array | \ArrayAccess &$use,
31  array | \ArrayAccess &$contribute,
32  array | \ArrayAccess &$seek,
33  array | \ArrayAccess &$provide,
34  array | \ArrayAccess &$pull,
35  array | \ArrayAccess &$internal,
36  ): void {
37  $contribute[EntryPoint::class] = static fn() =>
38  new \ILIAS\Setup\CLI\App(
39  $internal["command.install"],
40  $internal["command.update"],
41  $internal["command.build"],
42  $internal["command.achieve"],
43  $internal["command.status"],
44  $internal["command.migrate"]
45  );
46 
47  $contribute[\ILIAS\Setup\Agent::class] = static fn() =>
48  new \ilCommonSetupAgent(
49  $pull[\ILIAS\Refinery\Factory::class],
50  $pull[\ILIAS\Data\Factory::class]
51  );
52 
53  $internal["command.install"] = static fn() =>
54  new \ILIAS\Setup\CLI\InstallCommand(
55  $internal["agent_finder"],
56  $internal["config_reader"],
57  $internal["common_preconditions"]
58  );
59  $internal["command.update"] = static fn() =>
60  new \ILIAS\Setup\CLI\UpdateCommand(
61  $internal["agent_finder"],
62  $internal["config_reader"],
63  $internal["common_preconditions"]
64  );
65  $internal["command.build"] = static fn() =>
66  new \ILIAS\Setup\CLI\BuildCommand(
67  $internal["agent_finder"]
68  );
69  $internal["command.achieve"] = static fn() =>
70  new \ILIAS\Setup\CLI\AchieveCommand(
71  $internal["agent_finder"],
72  $internal["config_reader"],
73  $internal["common_preconditions"],
74  $pull[\ILIAS\Refinery\Factory::class],
75  );
76  $internal["command.status"] = static fn() =>
77  new \ILIAS\Setup\CLI\StatusCommand(
78  $internal["agent_finder"]
79  );
80  $internal["command.migrate"] = static fn() =>
81  new \ILIAS\Setup\CLI\MigrateCommand(
82  $internal["agent_finder"],
83  $internal["common_preconditions"]
84  );
85 
86  $internal["common_preconditions"] = static fn() =>
87  [
88  new \ilOwnRiskConfirmedObjective(),
89  new \ilUseRootConfirmed()
90  ];
91 
92  $internal["agent_finder"] = static fn() =>
93  new \ILIAS\Setup\ImplementationOfAgentFinder(
94  $pull[\ILIAS\Refinery\Factory::class],
95  $pull[\ILIAS\Data\Factory::class],
96  $use[\ILIAS\Language\Language::class],
97  $internal["interface_finder"],
98  $seek[\ILIAS\Setup\Agent::class]
99  );
100 
101  $internal["config_reader"] = static fn() =>
102  new \ILIAS\Setup\CLI\ConfigReader(
103  $internal["json.parser"]
104  );
105 
106  $internal["interface_finder"] = static fn() =>
107  new \ILIAS\Setup\ImplementationOfInterfaceFinder();
108 
109  $internal["json.parser"] = static fn() =>
110  new \Seld\JsonLint\JsonParser();
111  }
112 }
init(array|\ArrayAccess &$define, array|\ArrayAccess &$implement, array|\ArrayAccess &$use, array|\ArrayAccess &$contribute, array|\ArrayAccess &$seek, array|\ArrayAccess &$provide, array|\ArrayAccess &$pull, array|\ArrayAccess &$internal,)
Definition: Setup.php:27
Interface Observer Contains several chained tasks and infos about them.