ILIAS
trunk Revision v13.0_alpha-62-g3b72d83f2e5
◀ ilDoc Overview
ResponseBuilderFactory.php
Go to the documentation of this file.
1
<?php
2
19
declare(strict_types=1);
20
21
namespace
ILIAS\FileDelivery\Delivery\ResponseBuilder
;
22
23
use
ILIAS\FileDelivery\Setup\DeliveryMethodObjective
;
24
35
final
class
ResponseBuilderFactory
36
{
41
public
static
function
fromArtefact
(?
string
$path =
null
):
ResponseBuilder
42
{
43
$path ??=
DeliveryMethodObjective::PATH
();
44
if
(!is_file($path)) {
45
return
new
PHPResponseBuilder
();
46
}
47
48
$settings
= @include $path;
49
50
return
self::fromArray
(is_array(
$settings
) ?
$settings
: []);
51
}
52
56
public
static
function
fromArray
(array
$settings
):
ResponseBuilder
57
{
58
return
match (
$settings
[
DeliveryMethodObjective::SETTINGS
] ??
null
) {
59
DeliveryMethodObjective::XACCEL
=>
self::xAccel
(
$settings
),
60
DeliveryMethodObjective::XSENDFILE
=>
new
XSendFileResponseBuilder
(),
61
default
=>
new
PHPResponseBuilder
(),
62
};
63
}
64
73
private
static
function
xAccel
(array
$settings
):
ResponseBuilder
74
{
75
$external_data_dir =
$settings
[
DeliveryMethodObjective::SETTINGS_EXTERNAL_DATA_DIR
] ??
null
;
76
77
if
(!is_string($external_data_dir) || $external_data_dir ===
''
) {
78
return
new
PHPResponseBuilder
();
79
}
80
81
return
new
XAccelResponseBuilder
($external_data_dir);
82
}
83
}
$settings
$settings
Definition:
index.php:44
ILIAS\FileDelivery\Delivery\ResponseBuilder\PHPResponseBuilder
Definition:
PHPResponseBuilder.php:34
ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilderFactory
Builds the ResponseBuilder an installation is set up for.
Definition:
ResponseBuilderFactory.php:36
ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilderFactory\fromArtefact
static fromArtefact(?string $path=null)
Definition:
ResponseBuilderFactory.php:41
ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilderFactory\xAccel
static xAccel(array $settings)
X-Accel needs the external data directory the web server maps its internal location to.
Definition:
ResponseBuilderFactory.php:73
ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilderFactory\fromArray
static fromArray(array $settings)
Definition:
ResponseBuilderFactory.php:56
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder
Definition:
XAccelResponseBuilder.php:31
ILIAS\FileDelivery\Delivery\ResponseBuilder\XSendFileResponseBuilder
Definition:
XSendFileResponseBuilder.php:31
ILIAS\FileDelivery\Setup\BuildStaticConfigStoredObjective\PATH
static PATH()
Definition:
BuildStaticConfigStoredObjective.php:37
ILIAS\FileDelivery\Setup\DeliveryMethodObjective
Definition:
DeliveryMethodObjective.php:33
ILIAS\FileDelivery\Setup\DeliveryMethodObjective\XACCEL
const XACCEL
Definition:
DeliveryMethodObjective.php:37
ILIAS\FileDelivery\Setup\DeliveryMethodObjective\XSENDFILE
const XSENDFILE
Definition:
DeliveryMethodObjective.php:36
ILIAS\FileDelivery\Setup\DeliveryMethodObjective\SETTINGS_EXTERNAL_DATA_DIR
const SETTINGS_EXTERNAL_DATA_DIR
Definition:
DeliveryMethodObjective.php:35
ILIAS\FileDelivery\Setup\DeliveryMethodObjective\SETTINGS
const SETTINGS
Definition:
DeliveryMethodObjective.php:34
ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilder
Definition:
ResponseBuilder.php:31
ILIAS\FileDelivery\Delivery\ResponseBuilder
Definition:
PHPResponseBuilder.php:21
components
ILIAS
FileDelivery
src
Delivery
ResponseBuilder
ResponseBuilderFactory.php
Generated on Wed Nov 11 2026 23:07:03 for ILIAS by
1.9.4 (using
Doxyfile
)