ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
ILIAS\FileDelivery\Setup\DeliveryMethodObjective Class Reference
+ Inheritance diagram for ILIAS\FileDelivery\Setup\DeliveryMethodObjective:
+ Collaboration diagram for ILIAS\FileDelivery\Setup\DeliveryMethodObjective:

Public Member Functions

 getArtifactName ()
 
 build ()
 
 isApplicable (Setup\Environment $environment)
 
- Public Member Functions inherited from ILIAS\Setup\Artifact\BuildArtifactObjective
 getArtifactName ()
 Get the filename where the builder wants to put its artifact. More...
 
 build ()
 Build the artifact based. More...
 
 buildIn (Setup\Environment $env)
 Builds an artifact in some given Environment. More...
 
 getPreconditions (Setup\Environment $environment)
 Defaults to no preconditions. More...
 
 getHash ()
 Uses hashed Path. More...
 
 getLabel ()
 Defaults to 'Build ' . More...
 
 isNotable ()
 Defaults to 'true'. More...
 
 achieve (Setup\Environment $environment)
 Builds the artifact and puts it in its location. More...
 
 isApplicable (Setup\Environment $environment)
 
- Public Member Functions inherited from ILIAS\Setup\Objective
 getPreconditions (Environment $environment)
 Objectives might depend on other objectives. More...
 
 achieve (Environment $environment)
 Objectives can be achieved. More...
 
 isApplicable (Environment $environment)
 Get to know whether the objective is applicable. More...
 

Data Fields

const SETTINGS = 'delivery_method'
 
const XSENDFILE = 'xsendfile'
 
const XACCEL = 'xaccel'
 
const PHP = 'php'
 

Private Member Functions

 isModXSendFileLoaded ()
 

Additional Inherited Members

- Static Public Member Functions inherited from ILIAS\Setup\Artifact\BuildArtifactObjective
static PATH ()
 
- Protected Member Functions inherited from ILIAS\Setup\Artifact\BuildArtifactObjective
 getPath ()
 
 makeDirectoryFor (string $path)
 
- Protected Attributes inherited from ILIAS\Setup\Artifact\BuildArtifactObjective
const ARTIFACTS = __DIR__ . "/../../../../../artifacts"
 

Detailed Description

Member Function Documentation

◆ build()

ILIAS\FileDelivery\Setup\DeliveryMethodObjective::build ( )

Definition at line 43 of file DeliveryMethodObjective.php.

References ILIAS\FileDelivery\Setup\DeliveryMethodObjective\isModXSendFileLoaded().

43  : Setup\Artifact
44  {
45  // check if mod_xsendfile is loaded
46  if ($this->isModXSendFileLoaded()) {
47  return new Setup\Artifact\ArrayArtifact([
48  self::SETTINGS => self::XSENDFILE
49  ]);
50  }
51 
52  return new Setup\Artifact\ArrayArtifact([
53  self::SETTINGS => self::PHP
54  ]);
55  }
+ Here is the call graph for this function:

◆ getArtifactName()

ILIAS\FileDelivery\Setup\DeliveryMethodObjective::getArtifactName ( )

Definition at line 36 of file DeliveryMethodObjective.php.

36  : string
37  {
38  return "delivery_method";
39  }

◆ isApplicable()

ILIAS\FileDelivery\Setup\DeliveryMethodObjective::isApplicable ( Setup\Environment  $environment)

Definition at line 81 of file DeliveryMethodObjective.php.

References ILIAS\Setup\Artifact\BuildArtifactObjective\PATH().

81  : bool
82  {
83  return !file_exists(BuildArtifactObjective::PATH());
84  }
+ Here is the call graph for this function:

◆ isModXSendFileLoaded()

ILIAS\FileDelivery\Setup\DeliveryMethodObjective::isModXSendFileLoaded ( )
private

Definition at line 57 of file DeliveryMethodObjective.php.

References Vendor\Package\$e.

Referenced by ILIAS\FileDelivery\Setup\DeliveryMethodObjective\build().

57  : bool
58  {
59  if (function_exists('apache_get_modules') && in_array('mod_xsendfile', apache_get_modules(), true)) {
60  return true;
61  }
62 
63  try {
64  $command_exists = shell_exec("which apache2ctl");
65  if ($command_exists === null || empty($command_exists)) {
66  return false;
67  }
68 
69  $loaded_modules = array_map(static function ($module) {
70  return explode(" ", trim($module))[0] ?? "";
71  }, explode("\n", shell_exec("apache2ctl -M 2>/dev/null") ?? ''));
72  } catch (\Throwable $e) {
73  $loaded_modules = [];
74  }
75  if (in_array('xsendfile_module', $loaded_modules, true)) {
76  return true;
77  }
78  return false;
79  }
+ Here is the caller graph for this function:

Field Documentation

◆ PHP

const ILIAS\FileDelivery\Setup\DeliveryMethodObjective::PHP = 'php'

Definition at line 34 of file DeliveryMethodObjective.php.

Referenced by ILIAS\FileDelivery\Init\init().

◆ SETTINGS

const ILIAS\FileDelivery\Setup\DeliveryMethodObjective::SETTINGS = 'delivery_method'

Definition at line 31 of file DeliveryMethodObjective.php.

Referenced by ILIAS\FileDelivery\Init\init().

◆ XACCEL

const ILIAS\FileDelivery\Setup\DeliveryMethodObjective::XACCEL = 'xaccel'

Definition at line 33 of file DeliveryMethodObjective.php.

Referenced by ILIAS\FileDelivery\Init\init().

◆ XSENDFILE

const ILIAS\FileDelivery\Setup\DeliveryMethodObjective::XSENDFILE = 'xsendfile'

Definition at line 32 of file DeliveryMethodObjective.php.

Referenced by ILIAS\FileDelivery\Init\init().


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