filesystem

#Backup a directory

use Innmind\Filesystem\Adapter\Filesystem;
use Innmind\Url\Path;

$source = Filesystem::mount(Path::of('/var/data/'));
$backup = Filesystem::mount(Path::of('/volumes/backup/'));
$source
    ->root()
    ->foreach(static fn($file) => $backup->add($file));

This example will copy all files and directories from /var/data/ inside the folder /volumes/backup/. This operation is a merge and not an overwrite, meaning that files in the backup that don't exist in the source folder won't be deleted.