ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
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.

References null, ILIAS\Setup\Artifact\BuildArtifactObjective\PATH(), ILIAS\FileDelivery\Setup\DeliveryMethodObjective\SETTINGS, ILIAS\FileDelivery\Setup\DeliveryMethodObjective\XACCEL, and ILIAS\FileDelivery\Setup\DeliveryMethodObjective\XSENDFILE.

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(),
48  DeliveryMethodObjective::XSENDFILE => new XSendFileResponseBuilder(),
49  default => new PHPResponseBuilder(),
50  };
51  };
52 
53  $c['file_delivery.fallback_response_builder'] = (static fn(): ResponseBuilder => new PHPResponseBuilder());
54 
55  $c['file_delivery.data_signer'] = static function (): DataSigner {
56  $keys = array_map(static fn(string $key): SecretKey => new SecretKey($key), (require KeyRotationObjective::PATH()) ?? []);
57 
58  $current_key = array_shift($keys);
59 
60  return new DataSigner(
61  new SecretKeyRotation(
62  $current_key,
63  ...$keys
64  )
65  );
66  };
67 
68  $c['file_delivery.delivery'] = static function () use ($c): StreamDelivery {
69  // if http is not initialized, we need to do it here
70  if (!$c->offsetExists('http')) {
71  $init_http = new \InitHttpServices();
72  $init_http->init($c);
73  }
74 
75  return new StreamDelivery(
76  $c['file_delivery.data_signer'],
77  $c['http'],
78  $c['file_delivery.response_builder'],
79  $c['file_delivery.fallback_response_builder']
80  );
81  };
82 
83  $c['file_delivery.legacy_delivery'] = static function () use ($c): LegacyDelivery {
84  // if http is not initialized, we need to do it here
85  if (!$c->offsetExists('http')) {
86  $init_http = new \InitHttpServices();
87  $init_http->init($c);
88  }
89 
90  return new LegacyDelivery(
91  $c['http'],
92  $c['file_delivery.response_builder'],
93  $c['file_delivery.fallback_response_builder']
94  );
95  };
96 
97  $c['file_delivery'] = (static fn(): Services => new Services(
98  $c['file_delivery.delivery'],
99  $c['file_delivery.legacy_delivery'],
100  $c['file_delivery.data_signer'],
101  $c['http']
102  ));
103  }
$c
Definition: deliver.php:25
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the call graph for this function:

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