Skip to content

Commit 2e960e0

Browse files
committed
Add transfer action factory
1 parent 828f6bd commit 2e960e0

File tree

2 files changed

+26
-7
lines changed

2 files changed

+26
-7
lines changed

Diff for: src/FileListing/TransferActionFactory.php

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace DivineOmega\FileSync\FileListing;
4+
5+
use League\Flysystem\Filesystem;
6+
7+
abstract class TransferActionFactory
8+
{
9+
public static function createFromFiles(array $files, Filesystem $sourceFilesystem, Filesystem $destinationFilesystem)
10+
{
11+
return array_map(function ($file) use ($sourceFilesystem, $destinationFilesystem) {
12+
return new TransferAction(
13+
$file->path,
14+
$sourceFilesystem,
15+
$destinationFilesystem
16+
);
17+
}, $files);
18+
}
19+
}

Diff for: src/FileSyncStrategies/MultiDirectional.php

+7-7
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use DivineOmega\FileSync\FileListing\FileListing;
66
use DivineOmega\FileSync\FileListing\FileListingFactory;
77
use DivineOmega\FileSync\FileListing\TransferAction;
8+
use DivineOmega\FileSync\FileListing\TransferActionFactory;
89
use DivineOmega\FileSync\Interfaces\FileSyncStrategyInterface;
910
use League\Flysystem\Filesystem;
1011

@@ -40,14 +41,13 @@ public function begin(): void
4041

4142
$files = $fileListing->getFilesToTransferTo($otherFileListing);
4243

43-
foreach ($files as $file) {
44+
$newTransferActions = TransferActionFactory::createFromFiles(
45+
$files,
46+
$fileListing->filesystem,
47+
$otherFileListing->filesystem
48+
);
4449

45-
$transferActions[] = new TransferAction(
46-
$file->path,
47-
$fileListing->filesystem,
48-
$otherFileListing->filesystem
49-
);
50-
}
50+
$transferActions = array_merge($transferActions, $newTransferActions);
5151

5252
}
5353
}

0 commit comments

Comments
 (0)