spotman / davbackup
Creating backup sites in the clouds through WebDav
Installs: 6 782
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 9
Open Issues: 1
pkg:composer/spotman/davbackup
Requires
- php: >=7.2.0
README
This is a fork of original package from dmamontov.
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 DiskCloudMeGoogleDriveworking through service dav-pocketDropBoxworking through service dropdavtemporary does not workMail Disktemporary does not workOneDrive
Installation
-
Install composer
-
Follow in the project folder:
composer require spotman/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.
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->setDbConnection('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); } }