Skip to content

Commit 6916b76

Browse files
committed
use Config class in more places
1 parent 7a9e9a8 commit 6916b76

23 files changed

+98
-104
lines changed

phpstan-baseline.neon

+5-10
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,6 @@ parameters:
1010
count: 1
1111
path: src/BackupDestination/BackupCollection.php
1212

13-
-
14-
message: "#^Unable to resolve the template type TKey in call to function collect$#"
15-
count: 1
16-
path: src/BackupDestination/BackupDestinationFactory.php
17-
18-
-
19-
message: "#^Unable to resolve the template type TValue in call to function collect$#"
20-
count: 1
21-
path: src/BackupDestination/BackupDestinationFactory.php
22-
2313
-
2414
message: "#^Parameter \\#1 \\$callback of method Illuminate\\\\Support\\\\Collection\\<int,int\\>\\:\\:map\\(\\) expects callable\\(int, int\\)\\: string, Closure\\(string\\)\\: non\\-falsy\\-string given\\.$#"
2515
count: 1
@@ -54,3 +44,8 @@ parameters:
5444
message: "#^Parameter \\#1 \\$callback of method Illuminate\\\\Support\\\\Collection\\<int,Spatie\\\\Backup\\\\BackupDestination\\\\Backup\\>\\:\\:each\\(\\) expects callable\\(Spatie\\\\Backup\\\\BackupDestination\\\\Backup, int\\)\\: mixed, Closure\\(Spatie\\\\Backup\\\\BackupDestination\\\\BackupCollection\\)\\: void given\\.$#"
5545
count: 1
5646
path: src/Tasks/Cleanup/Strategies/DefaultStrategy.php
47+
48+
-
49+
message: "#^Parameter \\#1 \\$callback of method Illuminate\\\\Support\\\\Collection\\<\\(int\\|string\\),Spatie\\\\Backup\\\\Config\\\\MonitoredBackupConfig\\>\\:\\:flatMap\\(\\) expects callable\\(Spatie\\\\Backup\\\\Config\\\\MonitoredBackupConfig, int\\|string\\)\\: \\(array\\<int, Spatie\\\\Backup\\\\Tasks\\\\Monitor\\\\BackupDestinationStatus\\>\\|Illuminate\\\\Support\\\\Collection\\<int, Spatie\\\\Backup\\\\Tasks\\\\Monitor\\\\BackupDestinationStatus\\>\\), Closure\\(array\\)\\: Illuminate\\\\Support\\\\Collection\\<int, Spatie\\\\Backup\\\\Tasks\\\\Monitor\\\\BackupDestinationStatus\\> given\\.$#"
50+
count: 1
51+
path: src/Tasks/Monitor/BackupDestinationStatusFactory.php

src/BackupDestination/BackupDestinationFactory.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@
33
namespace Spatie\Backup\BackupDestination;
44

55
use Illuminate\Support\Collection;
6-
use Spatie\Backup\Config\BackupConfig;
6+
use Spatie\Backup\Config\Config;
77

88
class BackupDestinationFactory
99
{
1010
/**
1111
* @return Collection<int, BackupDestination>
1212
*/
13-
public static function createFromArray(BackupConfig $config): Collection
13+
public static function createFromArray(Config $config): Collection
1414
{
15-
return collect($config->destination->disks)
16-
->map(fn (string $filesystemName) => BackupDestination::create($filesystemName, $config->name));
15+
return collect($config->backup->destination->disks)
16+
->map(fn (string $filesystemName) => BackupDestination::create($filesystemName, $config->backup->name));
1717
}
1818
}

src/BackupServiceProvider.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
use Spatie\Backup\Commands\CleanupCommand;
1010
use Spatie\Backup\Commands\ListCommand;
1111
use Spatie\Backup\Commands\MonitorCommand;
12-
use Spatie\Backup\Config\BackupConfig;
12+
use Spatie\Backup\Config\Config;
1313
use Spatie\Backup\Events\BackupZipWasCreated;
1414
use Spatie\Backup\Helpers\ConsoleOutput;
1515
use Spatie\Backup\Listeners\EncryptBackupArchive;
@@ -52,8 +52,8 @@ public function packageRegistered(): void
5252

5353
$this->registerDiscordChannel();
5454

55-
$this->app->singleton(BackupConfig::class, function () {
56-
return BackupConfig::fromArray(config('backup.backup'));
55+
$this->app->singleton(Config::class, function () {
56+
return Config::fromArray(config('backup'));
5757
});
5858
}
5959

src/Commands/BackupCommand.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use Exception;
66
use Illuminate\Contracts\Console\Isolatable;
7-
use Spatie\Backup\Config\BackupConfig;
7+
use Spatie\Backup\Config\Config;
88
use Spatie\Backup\Events\BackupHasFailed;
99
use Spatie\Backup\Exceptions\BackupFailed;
1010
use Spatie\Backup\Exceptions\InvalidCommand;
@@ -19,7 +19,7 @@ class BackupCommand extends BaseCommand implements Isolatable
1919

2020
protected $description = 'Run the backup.';
2121

22-
public function __construct(protected BackupConfig $config)
22+
public function __construct(protected Config $config)
2323
{
2424
parent::__construct();
2525
}

src/Commands/CleanupCommand.php

+2-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use Exception;
66
use Illuminate\Contracts\Console\Isolatable;
77
use Spatie\Backup\BackupDestination\BackupDestinationFactory;
8-
use Spatie\Backup\Config\BackupConfig;
8+
use Spatie\Backup\Config\Config;
99
use Spatie\Backup\Events\CleanupHasFailed;
1010
use Spatie\Backup\Tasks\Cleanup\CleanupJob;
1111
use Spatie\Backup\Tasks\Cleanup\CleanupStrategy;
@@ -23,7 +23,7 @@ class CleanupCommand extends BaseCommand implements Isolatable
2323

2424
public function __construct(
2525
protected CleanupStrategy $strategy,
26-
protected BackupConfig $config,
26+
protected Config $config,
2727
) {
2828
parent::__construct();
2929
}
@@ -37,8 +37,6 @@ public function handle(): int
3737
$this->setTries('cleanup');
3838

3939
try {
40-
$config = config('backup');
41-
4240
$backupDestinations = BackupDestinationFactory::createFromArray($this->config);
4341

4442
$cleanupJob = new CleanupJob($backupDestinations, $this->strategy, $disableNotifications);

src/Commands/ListCommand.php

+7-5
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Illuminate\Support\Collection;
66
use Spatie\Backup\BackupDestination\Backup;
7+
use Spatie\Backup\Config\Config;
78
use Spatie\Backup\Helpers\Format;
89
use Spatie\Backup\Helpers\RightAlignedTableStyle;
910
use Spatie\Backup\Tasks\Monitor\BackupDestinationStatus;
@@ -17,13 +18,14 @@ class ListCommand extends BaseCommand
1718
/** @var string */
1819
protected $description = 'Display a list of all backups.';
1920

20-
public function handle(): int
21+
public function __construct(protected Config $config)
2122
{
22-
if (config()->has('backup.monitorBackups')) {
23-
$this->warn('Warning! Your config file still uses the old monitorBackups key. Update it to monitor_backups.');
24-
}
23+
parent::__construct();
24+
}
2525

26-
$statuses = BackupDestinationStatusFactory::createForMonitorConfig(config('backup.monitor_backups'));
26+
public function handle(): int
27+
{
28+
$statuses = BackupDestinationStatusFactory::createForMonitorConfig($this->config->monitoredBackups);
2729

2830
$this->displayOverview($statuses)->displayFailures($statuses);
2931

src/Commands/MonitorCommand.php

+3-7
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Spatie\Backup\Commands;
44

55
use Illuminate\Contracts\Console\Isolatable;
6-
use Spatie\Backup\Config\BackupConfig;
6+
use Spatie\Backup\Config\Config;
77
use Spatie\Backup\Events\HealthyBackupWasFound;
88
use Spatie\Backup\Events\UnhealthyBackupWasFound;
99
use Spatie\Backup\Tasks\Monitor\BackupDestinationStatusFactory;
@@ -16,20 +16,16 @@ class MonitorCommand extends BaseCommand implements Isolatable
1616
/** @var string */
1717
protected $description = 'Monitor the health of all backups.';
1818

19-
public function __construct(protected BackupConfig $config)
19+
public function __construct(protected Config $config)
2020
{
2121
parent::__construct();
2222
}
2323

2424
public function handle(): int
2525
{
26-
if (config()->has('backup.monitorBackups')) {
27-
$this->warn('Warning! Your config file still uses the old monitorBackups key. Update it to monitor_backups.');
28-
}
29-
3026
$hasError = false;
3127

32-
$statuses = BackupDestinationStatusFactory::createForMonitorConfig(config('backup.monitor_backups'));
28+
$statuses = BackupDestinationStatusFactory::createForMonitorConfig($this->config->monitoredBackups);
3329

3430
foreach ($statuses as $backupDestinationStatus) {
3531
$backupName = $backupDestinationStatus->backupDestination()->backupName();

src/Config/BackupConfig.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ protected function __construct(
3030
/** @param array<mixed> $data */
3131
public static function fromArray(array $data): self
3232
{
33+
$monitoredBackups = $data['monitored_backups'] ?? $data['monitorBackups'] ?? null;
34+
3335
return new self(
3436
name: $data['name'],
3537
source: SourceConfig::fromArray($data['source']),
@@ -44,7 +46,7 @@ public static function fromArray(array $data): self
4446
tries: $data['tries'],
4547
retryDelay: $data['retry_delay'],
4648
notifications: isset($data['notifications']) ? NotificationsConfig::fromArray($data['notifications']) : null,
47-
monitoredBackups: isset($data['monitored_backups']) ? MonitoredBackupsConfig::fromArray($data['monitored_backups']) : null,
49+
monitoredBackups: $monitoredBackups ? MonitoredBackupsConfig::fromArray($monitoredBackups) : null,
4850
);
4951
}
5052
}

src/Config/CleanupConfig.php

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
namespace Spatie\Backup\Config;
44

5+
use Spatie\Backup\Support\Data;
56
use Spatie\Backup\Tasks\Cleanup\CleanupStrategy;
67

7-
class CleanupConfig
8+
class CleanupConfig extends Data
89
{
910
/**
1011
* @param class-string<CleanupStrategy> $strategy
@@ -23,9 +24,9 @@ public static function fromArray(array $data): self
2324
{
2425
return new self(
2526
strategy: $data['strategy'],
26-
defaultStrategy: StrategyConfig::fromArray($data['defaultStrategy']),
27+
defaultStrategy: StrategyConfig::fromArray($data['default_strategy']),
2728
tries: $data['tries'],
28-
retryDelay: $data['retryDelay'],
29+
retryDelay: $data['retry_delay'],
2930
);
3031
}
3132
}

src/Config/Config.php

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace Spatie\Backup\Config;
4+
5+
use Spatie\Backup\Support\Data;
6+
7+
class Config extends Data
8+
{
9+
protected function __construct(
10+
public BackupConfig $backup,
11+
public MonitoredBackupsConfig $monitoredBackups,
12+
public CleanupConfig $cleanup,
13+
) {
14+
}
15+
16+
/** @param array<mixed> $data */
17+
public static function fromArray(array $data): self
18+
{
19+
return new self(
20+
backup: BackupConfig::fromArray($data['backup']),
21+
monitoredBackups: MonitoredBackupsConfig::fromArray($data['monitor_backups']),
22+
cleanup: CleanupConfig::fromArray($data['cleanup']),
23+
);
24+
}
25+
}

src/Config/MonitoredBackupConfig.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22

33
namespace Spatie\Backup\Config;
44

5+
use Spatie\Backup\Support\Data;
56
use Spatie\Backup\Tasks\Monitor\HealthCheck;
67

7-
class MonitoredBackupConfig
8+
class MonitoredBackupConfig extends Data
89
{
910
/**
1011
* @param array<string> $disks
11-
* @param array<class-string<HealthCheck, integer> $healthChecks
12+
* @param array<class-string<HealthCheck>, integer> $healthChecks
1213
*/
1314
protected function __construct(
1415
public string $name,

src/Config/MonitoredBackupsConfig.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Spatie\Backup\Config;
44

5-
class MonitoredBackupsConfig
5+
use Spatie\Backup\Support\Data;
6+
7+
class MonitoredBackupsConfig extends Data
68
{
79
/**
810
* @param array<MonitoredBackupConfig> $monitorBackups

src/Config/NotificationDiscordConfig.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Spatie\Backup\Config;
44

5-
class NotificationDiscordConfig
5+
use Spatie\Backup\Support\Data;
6+
7+
class NotificationDiscordConfig extends Data
68
{
79
protected function __construct(
810
public string $webhookUrl,

src/Config/NotificationMailConfig.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
namespace Spatie\Backup\Config;
44

55
use Spatie\Backup\Exceptions\InvalidConfig;
6+
use Spatie\Backup\Support\Data;
67

7-
class NotificationMailConfig
8+
class NotificationMailConfig extends Data
89
{
910
/**
1011
* @param array{address: string, name: string} $from

src/Config/StrategyConfig.php

+6-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Spatie\Backup\Config;
44

5-
class StrategyConfig
5+
use Spatie\Backup\Support\Data;
6+
7+
class StrategyConfig extends Data
68
{
79
protected function __construct(
810
public int $keepAllBackupsForDays,
@@ -20,9 +22,9 @@ public static function fromArray(array $data): self
2022
return new self(
2123
keepAllBackupsForDays: $data['keep_all_backups_for_days'],
2224
keepDailyBackupsForDays: $data['keep_daily_backups_for_days'],
23-
keepWeeklyBackupsForWeeks: $data['keep_weekly_backups_for_days'],
24-
keepMonthlyBackupsForMonths: $data['keep_monthly_backups_for_days'],
25-
keepYearlyBackupsForYears: $data['keep_yearly_backups_for_days'],
25+
keepWeeklyBackupsForWeeks: $data['keep_weekly_backups_for_weeks'],
26+
keepMonthlyBackupsForMonths: $data['keep_monthly_backups_for_months'],
27+
keepYearlyBackupsForYears: $data['keep_yearly_backups_for_years'],
2628
deleteOldestBackupsWhenUsingMoreMegabytesThan: $data['delete_oldest_backups_when_using_more_megabytes_than'],
2729
);
2830
}

src/Tasks/Backup/BackupJob.php

+3-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use Illuminate\Console\Command;
99
use Illuminate\Support\Collection;
1010
use Spatie\Backup\BackupDestination\BackupDestination;
11-
use Spatie\Backup\Config\BackupConfig;
11+
use Spatie\Backup\Config\Config;
1212
use Spatie\Backup\Events\BackupManifestWasCreated;
1313
use Spatie\Backup\Events\BackupWasSuccessful;
1414
use Spatie\Backup\Events\BackupZipWasCreated;
@@ -42,7 +42,7 @@ class BackupJob
4242

4343
protected bool $signals = true;
4444

45-
public function __construct(protected BackupConfig $config)
45+
public function __construct(protected Config $config)
4646
{
4747
$this
4848
->dontBackupFilesystem()
@@ -279,8 +279,7 @@ protected function dumpDatabases(): array
279279
$fileName .= '.'.$dbDumper->getCompressorExtension();
280280
}
281281

282-
ray($this->config->databaseDumpCompressor);
283-
if ($compressor = $this->config->databaseDumpCompressor) {
282+
if ($compressor = $this->config->backup->databaseDumpCompressor) {
284283
$dbDumper->useCompressor(new $compressor());
285284
$fileName .= '.'.$dbDumper->getCompressorExtension();
286285
}

src/Tasks/Backup/BackupJobFactory.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55
use Illuminate\Support\Arr;
66
use Illuminate\Support\Collection;
77
use Spatie\Backup\BackupDestination\BackupDestinationFactory;
8-
use Spatie\Backup\Config\BackupConfig;
8+
use Spatie\Backup\Config\Config;
99
use Spatie\Backup\Config\SourceFilesConfig;
1010
use Spatie\DbDumper\DbDumper;
1111

1212
class BackupJobFactory
1313
{
14-
public static function createFromConfig(BackupConfig $config): BackupJob
14+
public static function createFromConfig(Config $config): BackupJob
1515
{
1616
return (new BackupJob($config))
17-
->setFileSelection(static::createFileSelection($config->source->files))
18-
->setDbDumpers(static::createDbDumpers($config->source->databases))
17+
->setFileSelection(static::createFileSelection($config->backup->source->files))
18+
->setDbDumpers(static::createDbDumpers($config->backup->source->databases))
1919
->setBackupDestinations(BackupDestinationFactory::createFromArray($config));
2020
}
2121

0 commit comments

Comments
 (0)