Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Snapshot.php
Go to the documentation of this file.
1 <?php
12 namespace Magento\Framework\Backup;
13 
14 use Exception;
17 
18 class Snapshot extends Filesystem
19 {
25  protected $_dbBackupManager;
26 
32  protected $_filesystem;
33 
37  protected $_backupFactory;
38 
43  public function __construct(AppFilesystem $filesystem, Factory $backupFactory)
44  {
45  $this->_filesystem = $filesystem;
46  $this->_backupFactory = $backupFactory;
47  }
48 
55  public function rollback()
56  {
57  $result = parent::rollback();
58 
59  $this->_lastOperationSucceed = false;
60 
61  try {
62  $this->_getDbBackupManager()->rollback();
63  } catch (Exception $e) {
64  $this->_removeDbBackup();
65  throw $e;
66  }
67 
68  $this->_removeDbBackup();
69  $this->_lastOperationSucceed = true;
70 
71  return $result;
72  }
73 
80  public function create()
81  {
82  $this->_getDbBackupManager()->create();
83 
84  try {
85  $result = parent::create();
86  } catch (Exception $e) {
87  $this->_removeDbBackup();
88  throw $e;
89  }
90 
91  $this->_lastOperationSucceed = false;
92  $this->_removeDbBackup();
93  $this->_lastOperationSucceed = true;
94 
95  return $result;
96  }
97 
104  public function getType()
105  {
106  return 'snapshot';
107  }
108 
114  protected function _createDbBackupInstance()
115  {
116  return $this->_backupFactory->create(Factory::TYPE_DB)
117  ->setBackupExtension('sql')
118  ->setTime($this->getTime())
119  ->setBackupsDir($this->_filesystem->getDirectoryWrite(DirectoryList::VAR_DIR)->getAbsolutePath())
121  }
122 
128  protected function _getDbBackupManager()
129  {
130  if ($this->_dbBackupManager === null) {
131  $this->_dbBackupManager = $this->_createDbBackupInstance();
132  }
133 
135  }
136 
143  public function setDbBackupManager(AbstractBackup $manager)
144  {
145  $this->_dbBackupManager = $manager;
146  return $this;
147  }
148 
154  public function getDbBackupFilename()
155  {
156  return $this->_getDbBackupManager()->getBackupFilename();
157  }
158 
164  protected function _removeDbBackup()
165  {
167  return $this;
168  }
169 }
__construct(AppFilesystem $filesystem, Factory $backupFactory)
Definition: Snapshot.php:43
setDbBackupManager(AbstractBackup $manager)
Definition: Snapshot.php:143
$filesystem