b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / dev2.destoffenstraat.com / vendor / magento / framework / Backup /
Filename/home/dev2.destoffenstraat.com/vendor/magento/framework/Backup/Db.php
Size2.88 kb
Permissionrw-r--r--
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified07-Jan-2021 21:08
Last accessed23-Aug-2025 03:56
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Backup;

use Magento\Framework\Archive;
use Magento\Framework\Backup\Db\BackupFactory;
use Magento\Framework\Backup\Filesystem\Iterator\File;

/**
* Class to work with database backups
*
* @author Magento Core Team <core@magentocommerce.com>
* @api
* @since 100.0.2
*/
class Db extends AbstractBackup
{
/**
* @var BackupFactory
*/
protected $_backupFactory;

/**
* @param BackupFactory $backupFactory
*/
public function __construct(BackupFactory $backupFactory)
{
$this->_backupFactory = $backupFactory;
}

/**
* Implements Rollback functionality for Db
*
* @return bool
*/
public function rollback()
{
set_time_limit(0);
ignore_user_abort(true);

$this->_lastOperationSucceed = false;

$archiveManager = new Archive();
$source = $archiveManager->unpack($this->getBackupPath(), $this->getBackupsDir());

$file = new File($source);
foreach ($file as $statement) {
$this->getResourceModel()->runCommand($statement);
}
if ($this->keepSourceFile() === false) {
@unlink($source);
}

$this->_lastOperationSucceed = true;

return true;
}

/**
* Checks whether the line is last in sql command
*
* @param string $line
* @return bool
*/
protected function _isLineLastInCommand($line)
{
$cleanLine = trim($line);
$lineLength = strlen($cleanLine);

$returnResult = false;
if ($lineLength > 0) {
$lastSymbolIndex = $lineLength - 1;
if ($cleanLine[$lastSymbolIndex] == ';') {
$returnResult = true;
}
}

return $returnResult;
}

/**
* Implements Create Backup functionality for Db
*
* @return bool
*/
public function create()
{
set_time_limit(0);
ignore_user_abort(true);

$this->_lastOperationSucceed = false;

$backup = $this->_backupFactory->createBackupModel()->setTime(
$this->getTime()
)->setType(
$this->getType()
)->setPath(
$this->getBackupsDir()
)->setName(
$this->getName()
);

$backupDb = $this->_backupFactory->createBackupDbModel();
$backupDb->createBackup($backup);

$this->_lastOperationSucceed = true;

return true;
}

/**
* Get database size
*
* @return int
*/
public function getDBSize()
{
$backupDb = $this->_backupFactory->createBackupDbModel();
return $backupDb->getDBBackupSize();
}

/**
* Get Backup Type
*
* @return string
*/
public function getType()
{
return 'db';
}
}