vsolution-dev / laravel-zipper

这个软件包的官方仓库似乎已消失,因此该软件包已被冻结。

0.0.2 2024-05-20 13:01 UTC

This package is auto-updated.

Last update: 2024-06-20 13:08:19 UTC


README

Laravel Zipper 库

此库为 Laravel 应用程序提供了一种方便的压缩文件的方式。

安装

您可以使用 Composer 安装此库。运行以下命令

composer require vsolution-dev/laravel-zipper

安装后,您需要在 app.php 配置文件中添加服务提供者和外观。

将以下行添加到 providers 数组

VSolutionDev\LaravelZipper\ServiceProvider::class,

并将以下行添加到 aliases 数组

'Zipper' => VSolutionDev\LaravelZipper\Facades\Zipper::class,

要求

此库需要 PHP 7.4 或更高版本。在安装之前,请确保您的服务器满足此要求。

用法

要使用此库,您可以参考以下示例

$files = collect();

Qrcode::query()
    ->lazyById(1000)
    ->each(function ($qrcode) use ($files) {
        $files->add([
            'url' => $qrcode->url, // http://www.example.com/qrcode.png
            'name' => "{$qrcode->id}.png"
        ]);
    });

Zipper::queue($files, 'qrcodes.zip', 's3')
    ->allOnQueue('longtime')
    ->chain([
        (new SendMail())->attachFromStorageDisk('qrcodes.zip', 's3')
    ]);

在此示例中,我们使用 Zipper::queue() 对文件进行排队,然后将其与 SendMail 作业链式连接。SendMail 作业负责发送带有压缩文件的电子邮件。它使用 attachFromStorageDisk() 方法从指定的存储磁盘(在本例中为 's3')附加压缩文件。

请确保您已定义 SendMail 作业并具有适当的逻辑以发送电子邮件。您可能需要根据您的电子邮件发送实现对其进行自定义。