PHP Backup to WebDav Server
This package can backup files and a database to a WebDav server.
It takes the path of a given local directory and creates a PHAR archive with the files of the directory.
The base class can also connect to a given database using PDO and generate a backup file with SQL statements to recreate the database. The generated SQL file is also added to the PHAR archive.
The PHAR archive is compressed and transferred to a given remote server using the WebDAV protocol.
The package comes with several sub-classes specialized in configuring the connection to different WebDAV servers.
Requirements
- PHP version 5.3.6 or higher
Currently it supports clouds
Yandex Disk
CloudMe
GoogleDrive
working through service dav-pocket
DropBox
working through service dropdav
- ~~
Mail Disk
~~ temporary does not work
- ~~
OneDrive
~~ temporary does not work
Installation
1) Install composer
2) Follow in the project folder:
composer require dmamontov/davbackup ~1.0.1
In config composer.json
your project will be added to the library dmamontov/davbackup
, who settled in the folder vendor/
. In the absence of a config file or folder with vendors they will be created.
If before your project is not used composer
, connect the startup file vendors. To do this, enter the code in the project:
require 'path/to/vendor/autoload.php';
Example of work
require 'DavBackup.php';
$ya = new YandexBackup('test@yandex.ru', 'test');
$ya->setName('My Backup');
$ya->setType(YandexBackup::ZIP);
$ya->db('slobel_mama', 'test', 'slobel_mama');
$ya->folder('/home/s/slobel/public_html/classes/');
$ya->backup();
Example of adding support for WebDav cloud
class MyDavBackup extends DavBackup
{
const URL = 'https://dav.my.ru/';
public function __construct($login, $password)
{
parent::__construct(self::URL, (string) $login, (string) $password);
}
}