think.studio / laravel-download-util
Util to create download archive.
1.2.0
2023-08-20 10:12 UTC
Requires
- php: ^8.1
- ext-zip: *
- illuminate/support: ^9.0|^10.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.16
- orchestra/testbench: ^8.5
- phpunit/phpunit: ^10.1
- psalm/plugin-laravel: ^2.8
- vimeo/psalm: ^5.11
README
Util to create download archive.
Installation
Install the package via composer:
composer require think.studio/laravel-download-util
Optionally you can publish the config file with:
php artisan vendor:publish --provider="LaravelDownloadUtil\ServiceProvider" --tag="config"
Usage
Archivers
ZipArchiver
$storage = Storage::disk('my-disk'); $zipFileName = (new ZipArchiver($storage)) ->setArchiveCreationCallback(function ($archive, $files,) { foreach ($files as $directory => $filesList) { foreach ($filesList as $fileName => $file) { $archive->addFile($file, "{$directory}/".Str::afterLast($fileName, '/')); } } })->create($files, "app/assets-".Carbon::now()->format('Y-m-d-his')); if($zipFileName) { return $storage->url($zipFileName)'' }
Commands
$schedule->command('download-util:prune-outdated prunable_downloads -S 36000 -E ".zip"')->everyThirtyMinutes();