ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
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\LTI\ToolProvider\$key, ILIAS\LTI\ToolProvider\$settings, ILIAS\FileDelivery\Setup\DeliveryMethodObjective\ARTIFACT, ILIAS\FileDelivery\Setup\KeyRotationObjective\KEY_ROTATION, ILIAS\FileDelivery\Setup\DeliveryMethodObjective\PHP, ILIAS\FileDelivery\Setup\DeliveryMethodObjective\SETTINGS, ILIAS\FileDelivery\Setup\DeliveryMethodObjective\XACCEL, and ILIAS\FileDelivery\Setup\DeliveryMethodObjective\XSENDFILE.

Referenced by IndAssStorageMigration\prepare().

40  : void
41  {
42  $c['file_delivery.response_builder'] = static function (): ResponseBuilder {
44 
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::KEY_ROTATION) ?? []);
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  );
110  };
111  }
array $settings
Setting values (LTI parameters, custom parameters and local parameters).
Definition: System.php:200
string $key
Consumer key/client ID value.
Definition: System.php:193
+ Here is the caller graph for this function:

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