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

Public Member Functions

 __construct (string $target, MysqlDumper $dumper)
 
 getHash ()
 
 getLabel ()
 
 isNotable ()
 
 getPreconditions (Setup\Environment $environment)
 
 achieve (Setup\Environment $environment)
 
 isApplicable (Setup\Environment $environment)
 

Protected Member Functions

 deleteDirRecursive (string $path)
 

Protected Attributes

string $target
 
MysqlDumper $dumper
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilDatabaseDumpedToDirectoryObjective::__construct ( string  $target,
MysqlDumper  $dumper 
)

Member Function Documentation

◆ achieve()

ilDatabaseDumpedToDirectoryObjective::achieve ( Setup\Environment  $environment)

Definition at line 72 of file class.ilDatabaseDumpedToDirectoryObjective.php.

References deleteDirRecursive().

72  : Setup\Environment
73  {
74  if (file_exists($this->target)) {
75  $this->deleteDirRecursive($this->target);
76  }
77  mkdir($this->target, 0755);
78 
79  $client_ini = $environment->getResource(Setup\Environment::RESOURCE_CLIENT_INI);
80  $host = $client_ini->readVariable("db", "host");
81  $user = $client_ini->readVariable("db", "user");
82  $password = $client_ini->readVariable("db", "pass");
83  $name = $client_ini->readVariable("db", "name");
84  $port = $client_ini->readVariable("db", "port");
85 
86  $this->dumper->createDump($host, $user, $password, $name, $port, $this->target);
87 
88  return $environment;
89  }
+ Here is the call graph for this function:

◆ deleteDirRecursive()

ilDatabaseDumpedToDirectoryObjective::deleteDirRecursive ( string  $path)
protected

Definition at line 99 of file class.ilDatabaseDumpedToDirectoryObjective.php.

Referenced by achieve().

99  : void
100  {
101  $files = new RecursiveIteratorIterator(
102  new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS),
103  RecursiveIteratorIterator::CHILD_FIRST
104  );
105 
106  foreach ($files as $file_info) {
107  if ($file_info->isDir()) {
108  rmdir($file_info->getRealPath());
109  continue;
110  }
111  unlink($file_info->getRealPath());
112  }
113 
114  rmdir($path);
115  }
$path
Definition: ltiservices.php:30
+ Here is the caller graph for this function:

◆ getHash()

ilDatabaseDumpedToDirectoryObjective::getHash ( )

Definition at line 37 of file class.ilDatabaseDumpedToDirectoryObjective.php.

37  : string
38  {
39  return hash("sha256", self::class . $this->target);
40  }

◆ getLabel()

ilDatabaseDumpedToDirectoryObjective::getLabel ( )

Definition at line 45 of file class.ilDatabaseDumpedToDirectoryObjective.php.

References MysqlIfsnopDumper\FILE_NAME.

45  : string
46  {
47  return "Dump database to $this->target/" . MysqlIfsnopDumper::FILE_NAME;
48  }

◆ getPreconditions()

ilDatabaseDumpedToDirectoryObjective::getPreconditions ( Setup\Environment  $environment)

Definition at line 61 of file class.ilDatabaseDumpedToDirectoryObjective.php.

61  : array
62  {
63  return [
66  ];
67  }

◆ isApplicable()

ilDatabaseDumpedToDirectoryObjective::isApplicable ( Setup\Environment  $environment)

Definition at line 94 of file class.ilDatabaseDumpedToDirectoryObjective.php.

94  : bool
95  {
96  return is_writable(pathinfo($this->target, PATHINFO_DIRNAME));
97  }

◆ isNotable()

ilDatabaseDumpedToDirectoryObjective::isNotable ( )

Definition at line 53 of file class.ilDatabaseDumpedToDirectoryObjective.php.

53  : bool
54  {
55  return true;
56  }

Field Documentation

◆ $dumper

MysqlDumper ilDatabaseDumpedToDirectoryObjective::$dumper
protected

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

Referenced by __construct().

◆ $target

string ilDatabaseDumpedToDirectoryObjective::$target
protected

Definition at line 25 of file class.ilDatabaseDumpedToDirectoryObjective.php.

Referenced by __construct().


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