Qware_core/lib/package/backup/backupdb.php

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 &copy; 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_SQL_TYPE")){
return BackupDb::restore(DATA_SOURCE_SQL_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()
{
}
}
?>