ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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 (Environment $environment)
 Get to know whether the objective is applicable. More...
 
- Public Member Functions inherited from ILIAS\FileDelivery\Setup\BuildStaticConfigStoredObjective
 getArtifactName ()
 
 build ()
 
 buildIn (Environment $env)
 
 getPreconditions (Environment $environment)
 Objectives might depend on other objectives. More...
 
 getHash ()
 Get a hash for this objective. More...
 
 getLabel ()
 Get a label that describes this objective. More...
 
 isNotable ()
 Get to know if this is an interesting objective for a human. More...
 
 achieve (Environment $environment)
 Objectives can be achieved. More...
 
 isApplicable (Environment $environment)
 Get to know whether the objective is applicable. More...
 
 getHash ()
 Get a hash for this objective. More...
 
 getLabel ()
 Get a label that describes this objective. More...
 
 isNotable ()
 Get to know if this is an interesting objective for a human. More...
 
 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\FileDelivery\Setup\BuildStaticConfigStoredObjective
static PATH ()
 
- Protected Member Functions inherited from ILIAS\FileDelivery\Setup\BuildStaticConfigStoredObjective
 getPath ()
 
 makeDirectoryFor (string $path)
 
- Static Protected Member Functions inherited from ILIAS\FileDelivery\Setup\BuildStaticConfigStoredObjective
static saveName (string $name)
 

Detailed Description

Member Function Documentation

◆ build()

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

Reimplemented from ILIAS\FileDelivery\Setup\BuildStaticConfigStoredObjective.

Definition at line 43 of file DeliveryMethodObjective.php.

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

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

+ Here is the call graph for this function:

◆ getArtifactName()

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

Reimplemented from ILIAS\FileDelivery\Setup\BuildStaticConfigStoredObjective.

Definition at line 38 of file DeliveryMethodObjective.php.

38 : string
39 {
40 return "delivery_method";
41 }

◆ isApplicable()

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

Get to know whether the objective is applicable.

Don't change the environment or cause changes on services in the environment. Just check if this objective needs to be achieved, either currently or at all. In case of doubt whether the objective is applicable or not return true.

Reimplemented from ILIAS\FileDelivery\Setup\BuildStaticConfigStoredObjective.

Definition at line 80 of file DeliveryMethodObjective.php.

80 : bool
81 {
82 return !file_exists(BuildArtifactObjective::PATH());
83 }

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

+ Here is the call graph for this function:

◆ isModXSendFileLoaded()

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

Definition at line 57 of file DeliveryMethodObjective.php.

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(
70 static fn(string $module): string => explode(" ", trim($module))[0] ?? "",
71 explode("\n", shell_exec("apache2ctl -M 2>/dev/null") ?? '')
72 );
73 } catch (\Throwable $e) {
74 $loaded_modules = [];
75 }
76 return in_array('xsendfile_module', $loaded_modules, true);
77 }

References Vendor\Package\$e.

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

+ Here is the caller graph for this function:

Field Documentation

◆ PHP

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

Definition at line 36 of file DeliveryMethodObjective.php.

◆ SETTINGS

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

Definition at line 33 of file DeliveryMethodObjective.php.

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

◆ XACCEL

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

Definition at line 35 of file DeliveryMethodObjective.php.

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

◆ XSENDFILE

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

Definition at line 34 of file DeliveryMethodObjective.php.

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


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