, (*1)
PHP Backup to WebDav Server
This package can backup files and a database to a WebDav server., (*2)
It takes the path of a given local directory and creates a PHAR archive with the files of the directory., (*3)
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., (*4)
The PHAR archive is compressed and transferred to a given remote server using the WebDAV protocol., (*5)
The package comes with several sub-classes specialized in configuring the connection to different WebDAV servers., (*6)
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, (*7)
2) Follow in the project folder:, (*8)
composer require dmamontov/davbackup ~1.1.0
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., (*9)
If before your project is not used composer, connect the startup file vendors. To do this, enter the code in the project:, (*10)
require 'path/to/vendor/autoload.php';
Example of work
require 'DavBackup.php';
$ya = new YandexBackup('test@yandex.ru', 'test');
$ya->setConnection('user', 'password', 'db')
->setPath('/var/www/public_html')
->setType(YandexBackup::ZIP)
->setRemoveFile(false)
->execute();
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);
}
}