ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
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 38 of file Init.php.

Member Function Documentation

◆ init()

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

Definition at line 40 of file Init.php.

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

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

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