fix mailing an email

This commit is contained in:
2026-06-23 08:05:51 +02:00
parent c5127da750
commit def8d22544
2479 changed files with 325393 additions and 781 deletions
+29 -10
View File
@@ -60,7 +60,7 @@ class BackupService
return $backups;
}
public function run(): array
public function run(array $options = []): array
{
$result = ['success' => true, 'message' => '', 'filename' => ''];
@@ -74,12 +74,28 @@ class BackupService
$filename = $appName . '_' . $timestamp . '.zip';
$filepath = $this->backupDir . '/' . $filename;
$includeFiles = $options['include_files'] ?? (bool) AppSetting::getSetting('backup_include_files', true);
$includeEnv = $options['include_env'] ?? (bool) AppSetting::getSetting('backup_include_env', true);
$steps = [];
$includedComponents = [];
$steps[] = $this->backupDatabase();
$steps[] = $this->backupEnv();
$steps[] = $this->backupFiles();
$this->writeManifest($timestamp);
$includedComponents[] = 'database';
$stepEnv = $this->backupEnv($includeEnv);
$steps[] = $stepEnv;
if ($includeEnv) {
$includedComponents[] = 'env';
}
$stepFiles = $this->backupFiles($includeFiles);
$steps[] = $stepFiles;
if ($includeFiles) {
$includedComponents[] = 'files';
}
$this->writeManifest($timestamp, $includedComponents);
$zipResult = $this->createZip($filepath);
if (!$zipResult) {
@@ -90,7 +106,7 @@ class BackupService
$size = file_exists($filepath) ? filesize($filepath) : 0;
Log::info("Backup completato: {$filename} (" . $this->formatBytes($size) . ")");
Log::info("Backup completato: {$filename} (" . $this->formatBytes($size) . ')');
$this->cleanupOldBackups();
@@ -100,6 +116,7 @@ class BackupService
'filename' => $filename,
'size' => $size,
'size_formatted' => $this->formatBytes($size),
'steps' => $steps,
];
} catch (\Exception $e) {
$this->cleanTemp();
@@ -109,6 +126,7 @@ class BackupService
'success' => false,
'message' => 'Backup fallito: ' . $e->getMessage(),
'filename' => '',
'steps' => [],
];
}
}
@@ -181,9 +199,9 @@ class BackupService
return 'database.sql (' . $this->formatBytes(filesize($sqlFile)) . ')';
}
private function backupEnv(): string
private function backupEnv(bool $includeEnv = true): string
{
if (!AppSetting::getSetting('backup_include_env', true)) {
if (!$includeEnv) {
return '.env (escluso)';
}
@@ -200,9 +218,9 @@ class BackupService
return '.env copiato';
}
private function backupFiles(): string
private function backupFiles(bool $includeFiles = true): string
{
if (!AppSetting::getSetting('backup_include_files', true)) {
if (!$includeFiles) {
return 'files (esclusi)';
}
@@ -220,7 +238,7 @@ class BackupService
return 'files copiati';
}
private function writeManifest(string $timestamp): void
private function writeManifest(string $timestamp, array $includedComponents = ['database']): void
{
$manifest = [
'created_at' => $timestamp,
@@ -230,6 +248,7 @@ class BackupService
'db_name' => config('database.connections.mysql.database'),
'php_version' => PHP_VERSION,
'laravel_version' => app()->version(),
'included_components' => $includedComponents,
];
File::put($this->tempDir . '/manifest.json', json_encode($manifest, JSON_PRETTY_PRINT));