File "BackupJobFactory.php"
Full Path: /home/pulsehostuk9/public_html/invoicer.pulsehost.co.uk/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJobFactory.php
File size: 1.29 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Spatie\Backup\Tasks\Backup;
use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
use Spatie\Backup\BackupDestination\BackupDestinationFactory;
class BackupJobFactory
{
public static function createFromArray(array $config): BackupJob
{
return (new BackupJob())
->setFileSelection(static::createFileSelection($config['backup']['source']['files']))
->setDbDumpers(static::createDbDumpers($config['backup']['source']['databases']))
->setBackupDestinations(BackupDestinationFactory::createFromArray($config['backup']));
}
protected static function createFileSelection(array $sourceFiles): FileSelection
{
return FileSelection::create($sourceFiles['include'])
->excludeFilesFrom($sourceFiles['exclude'])
->shouldFollowLinks(isset($sourceFiles['follow_links']) && $sourceFiles['follow_links'])
->shouldIgnoreUnreadableDirs(Arr::get($sourceFiles, 'ignore_unreadable_directories', false));
}
protected static function createDbDumpers(array $dbConnectionNames): Collection
{
return collect($dbConnectionNames)->mapWithKeys(
fn (string $dbConnectionName) => [$dbConnectionName => DbDumperFactory::createFromConnection($dbConnectionName)]
);
}
}