ILIAS  trunk Revision v12.0_alpha-1221-g4e438232683
ILIAS\FileDelivery\Init Class Reference
+ Collaboration diagram for ILIAS\FileDelivery\Init:

Static Public Member Functions

static init (Container $c)
 

Detailed Description

Author
Fabian Schmid fabia.nosp@m.n@sr.nosp@m..solu.nosp@m.tion.nosp@m.s

Definition at line 39 of file Init.php.

Member Function Documentation

◆ init()

static ILIAS\FileDelivery\Init::init ( Container  $c)
static

Definition at line 41 of file Init.php.

41 : void
42 {
43 $c['file_delivery.response_builder'] = static function (): ResponseBuilder {
44 $settings = (@include DeliveryMethodObjective::PATH()) ?? [];
45
46 return match ($settings[DeliveryMethodObjective::SETTINGS] ?? null) {
47 DeliveryMethodObjective::XACCEL => new XAccelResponseBuilder(
49 ),
50 DeliveryMethodObjective::XSENDFILE => new XSendFileResponseBuilder(),
51 default => new PHPResponseBuilder(),
52 };
53 };
54
55 $c['file_delivery.fallback_response_builder'] = (static fn(): ResponseBuilder => new PHPResponseBuilder());
56
57 $c['file_delivery.data_signer'] = static function (): DataSigner {
58 $keys = array_map(static fn(string $key): SecretKey => new SecretKey($key), (require KeyRotationObjective::PATH()) ?? []);
59
60 $current_key = array_shift($keys);
61
62 return new DataSigner(
63 new SecretKeyRotation(
64 $current_key,
65 ...$keys
66 )
67 );
68 };
69
70 $c['file_delivery.delivery'] = static function () use ($c): StreamDelivery {
71 // if http is not initialized, we need to do it here
72 if (!$c->offsetExists('http')) {
73 $init_http = new \InitHttpServices();
74 $init_http->init($c);
75 }
76
77 return new StreamDelivery(
78 $c['file_delivery.data_signer'],
79 $c['http'],
80 $c['file_delivery.response_builder'],
81 $c['file_delivery.fallback_response_builder']
82 );
83 };
84
85 $c['file_delivery.legacy_delivery'] = static function () use ($c): LegacyDelivery {
86 // if http is not initialized, we need to do it here
87 if (!$c->offsetExists('http')) {
88 $init_http = new \InitHttpServices();
89 $init_http->init($c);
90 }
91
92 return new LegacyDelivery(
93 $c['http'],
94 $c['file_delivery.response_builder'],
95 $c['file_delivery.fallback_response_builder']
96 );
97 };
98
99 $c['file_delivery'] = (static fn(): Services => new Services(
100 $c['file_delivery.delivery'],
101 $c['file_delivery.legacy_delivery'],
102 $c['file_delivery.data_signer'],
103 $c['http']
104 ));
105 }
$c
Definition: deliver.php:25

References $c, ILIAS\FileDelivery\Setup\BuildStaticConfigStoredObjective\PATH(), ILIAS\FileDelivery\Setup\DeliveryMethodObjective\SETTINGS, ILIAS\FileDelivery\Setup\DeliveryMethodObjective\SETTINGS_EXTERNAL_DATA_DIR, ILIAS\FileDelivery\Setup\DeliveryMethodObjective\XACCEL, and ILIAS\FileDelivery\Setup\DeliveryMethodObjective\XSENDFILE.

+ Here is the call graph for this function:

The documentation for this class was generated from the following file: