ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
ilFileSystemDirectoriesCreatedObjective Class Reference
+ Inheritance diagram for ilFileSystemDirectoriesCreatedObjective:
+ Collaboration diagram for ilFileSystemDirectoriesCreatedObjective:

Public Member Functions

 __construct (\ilFileSystemSetupConfig $config)
 
 getHash ()
 
 getLabel ()
 
 isNotable ()
 
 getPreconditions (Setup\Environment $environment)
 
 achieve (Setup\Environment $environment)
 
 isApplicable (Setup\Environment $environment)
 

Protected Member Functions

 deleteRecursive (string $path, bool $delete_base_dir=false)
 

Protected Attributes

ilFileSystemSetupConfig $config
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilFileSystemDirectoriesCreatedObjective::__construct ( \ilFileSystemSetupConfig  $config)

Definition at line 28 of file class.ilFileSystemDirectoriesCreatedObjective.php.

References $config.

30  {
31  $this->config = $config;
32  }

Member Function Documentation

◆ achieve()

ilFileSystemDirectoriesCreatedObjective::achieve ( Setup\Environment  $environment)

Definition at line 109 of file class.ilFileSystemDirectoriesCreatedObjective.php.

References $ini, and deleteRecursive().

109  : Setup\Environment
110  {
111  $ini = $environment->getResource(Setup\Environment::RESOURCE_ILIAS_INI);
112 
113  $ini->setVariable("clients", "datadir", $this->config->getDataDir());
114  if (!$ini->write()) {
115  throw new Setup\UnachievableException("Could not write ilias.ini.php");
116  }
117 
118  if ($environment->hasConfigFor("tmp_dir")) {
119  $tmp_dir = $environment->getConfigFor("tmp_dir");
120  if (!is_null($tmp_dir)) {
121  $this->deleteRecursive($tmp_dir, true);
122  }
123  }
124 
125  return $environment;
126  }
$ini
Definition: raiseError.php:4
+ Here is the call graph for this function:

◆ deleteRecursive()

ilFileSystemDirectoriesCreatedObjective::deleteRecursive ( string  $path,
bool  $delete_base_dir = false 
)
protected

Definition at line 142 of file class.ilFileSystemDirectoriesCreatedObjective.php.

Referenced by achieve().

142  : void
143  {
144  if (is_file($path)) {
145  unlink($path);
146  return;
147  }
148 
149  $files = new RecursiveIteratorIterator(
150  new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS),
151  RecursiveIteratorIterator::CHILD_FIRST
152  );
153 
154  foreach ($files as $file_info) {
155  if ($file_info->isDir()) {
156  rmdir($file_info->getRealPath());
157  continue;
158  }
159  unlink($file_info->getRealPath());
160  }
161 
162  if ($delete_base_dir) {
163  rmdir($path);
164  }
165  }
$path
Definition: ltiservices.php:30
+ Here is the caller graph for this function:

◆ getHash()

ilFileSystemDirectoriesCreatedObjective::getHash ( )

Definition at line 34 of file class.ilFileSystemDirectoriesCreatedObjective.php.

34  : string
35  {
36  return hash("sha256", self::class);
37  }

◆ getLabel()

ilFileSystemDirectoriesCreatedObjective::getLabel ( )

Definition at line 39 of file class.ilFileSystemDirectoriesCreatedObjective.php.

39  : string
40  {
41  return "ILIAS directories are created";
42  }

◆ getPreconditions()

ilFileSystemDirectoriesCreatedObjective::getPreconditions ( Setup\Environment  $environment)
Returns
[]|[]

Definition at line 52 of file class.ilFileSystemDirectoriesCreatedObjective.php.

References $client_id, and $data_dir.

52  : array
53  {
54  $client_id = $environment->getResource(Setup\Environment::RESOURCE_CLIENT_ID);
55  $data_dir = $this->config->getDataDir();
56  $web_dir = dirname(__DIR__, 5) . "/public/data";
57  $root = dirname(__DIR__, 5);
58 
59  $client_data_dir = $data_dir . '/' . $client_id;
60  $client_web_dir = $web_dir . '/' . $client_id;
61 
62  $web_dir_objective = new Setup\Objective\DirectoryCreatedObjective($client_web_dir);
63  $data_dir_objective = new Setup\Objective\DirectoryCreatedObjective($client_data_dir);
64  $customizing_dir_objective = new Setup\Objective\NullObjective();
65 
66  if ($environment->hasConfigFor(Setup\CLI\InstallCommand::IMPORT)) {
67  $tmp_dir = $environment->getConfigFor("tmp_dir");
68 
69  $web_dir_objective = new ObjectiveWithPreconditions(
71  $web_dir
72  ),
74  $tmp_dir . DIRECTORY_SEPARATOR . "web_data",
75  $web_dir,
76  false,
77  true
78  )
79  );
80  $data_dir_objective = new ObjectiveWithPreconditions(
82  $data_dir
83  ),
85  $tmp_dir . DIRECTORY_SEPARATOR . "data",
86  $data_dir,
87  false,
88  true
89  )
90  );
91  $customizing_dir_objective = new ilFileSystemDirectoryCopiedRecursivelyObjective(
92  $tmp_dir . DIRECTORY_SEPARATOR . "Customizing",
93  $root . "/public/Customizing",
94  false,
95  true
96  );
97  }
98 
99  return [
101  new Setup\Objective\DirectoryCreatedObjective($data_dir),
102  new Setup\Objective\DirectoryCreatedObjective($web_dir),
103  $web_dir_objective,
104  $data_dir_objective,
105  $customizing_dir_objective
106  ];
107  }
A wrapper around an objective that adds some preconditions.
$client_id
Definition: ltiauth.php:67

◆ isApplicable()

ilFileSystemDirectoriesCreatedObjective::isApplicable ( Setup\Environment  $environment)

Definition at line 131 of file class.ilFileSystemDirectoriesCreatedObjective.php.

References $ini.

131  : bool
132  {
133  if ($environment->hasConfigFor(Setup\CLI\InstallCommand::IMPORT)) {
134  return true;
135  }
136 
137  $ini = $environment->getResource(Setup\Environment::RESOURCE_ILIAS_INI);
138 
139  return $ini->readVariable("clients", "datadir") !== $this->config->getDataDir();
140  }
$ini
Definition: raiseError.php:4

◆ isNotable()

ilFileSystemDirectoriesCreatedObjective::isNotable ( )

Definition at line 44 of file class.ilFileSystemDirectoriesCreatedObjective.php.

44  : bool
45  {
46  return true;
47  }

Field Documentation

◆ $config

ilFileSystemSetupConfig ilFileSystemDirectoriesCreatedObjective::$config
protected

Definition at line 26 of file class.ilFileSystemDirectoriesCreatedObjective.php.

Referenced by __construct().


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