269 lines
6.3 KiB
PHP
Executable File
269 lines
6.3 KiB
PHP
Executable File
<?php
|
|
|
|
/**-----------------------------------------------
|
|
*
|
|
* Rooty, 2018 <rooty@rooty.me>
|
|
*
|
|
*
|
|
* This software is protected by copyright, please
|
|
* read the file COPYRIGHT.
|
|
* This program is distributed in the hope that it
|
|
* will be useful, but without any warranty; without
|
|
* even the implied warranty of merchantability or
|
|
* fitness for a particular purpose. Please
|
|
* read the file LICENCE.
|
|
*
|
|
* Ce fichier contient la gestion de BackupDb (Factory+Modéle)
|
|
*
|
|
* @author Rooty <www.rooty.me|rooty@rooty.me>
|
|
* @since 2005/03/11
|
|
* @link www.rooty.me
|
|
* @version 0.3
|
|
* @package package
|
|
* @subpackage BackupDb
|
|
* @copyright Copyright © 2009-2018, Rooty
|
|
*/
|
|
|
|
if ( !defined('SYSTEM_IN') )
|
|
{
|
|
// die("Hacking attempt");
|
|
}
|
|
|
|
/**
|
|
* Classe BackupDbFactory
|
|
*Usine a BackupDb
|
|
*Cette classe permet de générer un fichier .sql
|
|
* @package package
|
|
* @subpackage BackupDb
|
|
*/
|
|
class BackupDb
|
|
{
|
|
/**
|
|
* Création d'un objet BackupDb de type $type (actuellement mysql)
|
|
* @param chaine type d'objet BackupDb
|
|
* @param chaine host
|
|
* @param chaine login
|
|
* @param chaine password
|
|
* @param chaine chemin de sauvgarde
|
|
* @param chaine nom du fichier de sauvegarde
|
|
* @param chaine nom de la base de données
|
|
* @return booleen
|
|
*/
|
|
function create($type, $host, $login, $password, $chemin, $nom_fichier, $db, $chmod=0775)
|
|
{
|
|
if (file_exists($GLOBALS["CONF_LIB_PATH"]."lib/package/backup/".strtolower($type)."backupdb.php"))
|
|
{
|
|
includePackage("backup/".strtolower($type)."backupdb.php");
|
|
|
|
if (!class_exists($type.'BackupDb'))
|
|
{
|
|
addError(2,"BackupDbFactory","le fichier de ressource n'est pas valide!", __line__, __file__);
|
|
return false;
|
|
}
|
|
|
|
eval('$return=new '.$type.'BackupDb("'.$host.'", "'.$login.'", "'.$password.'", "'.$chemin.'", "'.$nom_fichier.'", "'.$db.'", "'.$chmod.'");');
|
|
|
|
if (!isset($return) || !is_object($return))
|
|
{
|
|
addError(2,"BackupDbFactory","le fichier de ressource n'est pas valide!", __line__, __file__);
|
|
return false;
|
|
}
|
|
return $return->backup();
|
|
}else{
|
|
addError(2,"BackupDbFactory","le fichier de ressource n'existe pas!", __line__, __file__);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Création d'un objet BackupDb de type $type (actuellement mysql)
|
|
* @param chaine type d'objet BackupDb
|
|
* @param chaine host
|
|
* @param chaine login
|
|
* @param chaine password
|
|
* @param chaine chemin de sauvgarde
|
|
* @param chaine nom du fichier de sauvegarde
|
|
* @param chaine nom de la base de données
|
|
* @return booleen
|
|
*/
|
|
function restore($type, $host,$login,$password,$chemin,$nom_fichier,$db)
|
|
{
|
|
if (file_exists($GLOBALS["CONF_LIB_PATH"]."lib/package/backup/".strtolower($type)."backupdb.php"))
|
|
{
|
|
includePackage("backup/".strtolower($type)."backupdb.php");
|
|
|
|
if (!class_exists($type.'BackupDb'))
|
|
{
|
|
addError(2,"BackupDbFactory","le fichier de ressource n'est pas valide!", __line__, __file__);
|
|
return false;
|
|
}
|
|
eval('$return=new '.$type.'BackupDb("'.$host.'", "'.$login.'", "'.$password.'", "'.$chemin.'", "'.$nom_fichier.'", "'.$db.'");');
|
|
|
|
if (!isset($return) || !is_object($return))
|
|
{
|
|
addError(2,"BackupDbFactory","le fichier de ressource n'est pas valide!", __line__, __file__);
|
|
return false;
|
|
}
|
|
return $return->restore();
|
|
}else{
|
|
addError(2,"BackupDbFactory","le fichier de ressource n'existe pas!", __line__, __file__);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Création d'une sauvegarde fichier de la base courante!!
|
|
* Le type de la base est défini dans conf/conf.data_source.php<br/>
|
|
* Utilisation:<br/>
|
|
* $var=BackupDbFactory::createBackup("data/", "test.sql");
|
|
* @param chaine host
|
|
* @param chaine login
|
|
* @param chaine password
|
|
* @param chaine chemin de sauvgarde
|
|
* @param chaine nom du fichier de sauvegarde
|
|
* @param chaine nom de la base de données
|
|
* @return booleen
|
|
*/
|
|
function createBackupDb($chemin, $nom_fichier)
|
|
{
|
|
if (defined("DATA_SOURCE_DB_TYPE")){
|
|
return BackupDb::create(DATA_SOURCE_DB_TYPE, DATA_SOURCE_DB_SERVER, DATA_SOURCE_DB_USER, DATA_SOURCE_DB_PASSWORD, $chemin, $nom_fichier, DATA_SOURCE_DB_DATABASE);
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Restoration d'une sauvegarde DB dans la base courante!!
|
|
* Le type de la base est défini dans conf/conf.data_source.php<br/>
|
|
* Utilisation:<br/>
|
|
* $var=BackupDbFactory::createBackup("data/", "test.sql");
|
|
* @param chaine host
|
|
* @param chaine login
|
|
* @param chaine password
|
|
* @param chaine chemin de sauvgarde
|
|
* @param chaine nom du fichier de sauvegarde
|
|
* @param chaine nom de la base de données
|
|
* @return booleen
|
|
*/
|
|
function restoreBackUpDb($chemin,$nom_fichier){
|
|
if (defined("DATA_SOURCE_DB_TYPE")){
|
|
return BackupDb::restore(DATA_SOURCE_DB_TYPE, DATA_SOURCE_SQL_SERVER, DATA_SOURCE_SQL_USER, DATA_SOURCE_SQL_PASSWORD,$chemin,$nom_fichier, DATA_SOURCE_SQL_DATABASE);
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Classe BackupDb
|
|
*classe de gestion des BackupDb (BD)
|
|
* Interface pour les ressources DB type mysql etc. voir dans /backupdb
|
|
* @package package
|
|
* @subpackage BackupDb
|
|
*/
|
|
class CommonBackupDb
|
|
{
|
|
|
|
//
|
|
// Attributs
|
|
//
|
|
/**
|
|
* @var entier
|
|
* @access private
|
|
*/
|
|
var $host = "";
|
|
|
|
/**
|
|
* @var entier
|
|
* @access private
|
|
*/
|
|
var $login = "";
|
|
|
|
/**
|
|
* @var entier
|
|
* @access private
|
|
*/
|
|
var $passwd = "";
|
|
|
|
/**
|
|
* @var entier
|
|
* @access private
|
|
*/
|
|
var $path = "";
|
|
|
|
/**
|
|
* @var entier
|
|
* @access private
|
|
*/
|
|
var $file = "";
|
|
|
|
/**
|
|
* @var entier
|
|
* @access private
|
|
*/
|
|
var $db = "";
|
|
|
|
/**
|
|
* @var entier
|
|
* @access private
|
|
*/
|
|
var $perm = "";
|
|
|
|
//
|
|
// Constructeur
|
|
//
|
|
/**
|
|
* Constructeur
|
|
* @param chaine host
|
|
* @param chaine login
|
|
* @param chaine password
|
|
* @param chaine chemin de sauvgarde
|
|
* @param chaine nom du fichier de sauvegarde
|
|
* @param chaine nom de la base de données
|
|
* @return booleen
|
|
*/
|
|
function CommonBackupDb($host,$login,$password,$chemin,$nom_fichier,$db, $chmod=0775)
|
|
{
|
|
$this->__construct($host,$login,$password,$chemin,$nom_fichier,$db, $chmod);
|
|
}
|
|
|
|
/**
|
|
* Constructeur
|
|
* @param chaine host
|
|
* @param chaine login
|
|
* @param chaine password
|
|
* @param chaine chemin de sauvgarde
|
|
* @param chaine nom du fichier de sauvegarde
|
|
* @param chaine nom de la base de données
|
|
* @return booleen
|
|
*/
|
|
function __construct($host,$login,$password,$chemin,$nom_fichier,$db, $chmod=0775)
|
|
{
|
|
$this->host=$host;
|
|
$this->login=$login;
|
|
$this->passwd=$password;
|
|
$this->path=$chemin;
|
|
$this->file=$nom_fichier;
|
|
$this->db=$db;
|
|
$this->perm=$chmod;
|
|
}
|
|
|
|
/**
|
|
* Création d'une sauvegarde
|
|
* @return booleen
|
|
*/
|
|
function backup()
|
|
{
|
|
}
|
|
|
|
/**
|
|
* Restauration d'une sauvegarde
|
|
* @return booleen
|
|
*/
|
|
function restore()
|
|
{
|
|
}
|
|
}
|
|
?>
|