think.studio/laravel-download-util

Util to create download archive.

1.2.0 2023-08-20 10:12 UTC

This package is auto-updated.

Last update: 2024-10-20 13:11:14 UTC


README

Packagist License Packagist Version Total Downloads Build Status Code Coverage Scrutinizer Code Quality

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();

Credits

  • Think Studio