esoastor/downloader

该软件包最新版本(v0.3.0)没有提供许可信息。

v0.3.0 2024-01-20 19:03 UTC

This package is auto-updated.

Last update: 2024-09-20 20:51:54 UTC


README

用法

创建下载结构的数组:[folder_name => [file_name => file_link...](嵌套级别不受限制)。

使用 Downloader::get() 获取下载器。使用 enableConsoleReports() 启用控制台报告(关于成功、错误等消息)。

如有需要,配置自定义事件处理器(请参阅 事件监听器)。

$downloadData = ['images' => ['img1.png' => 'www.img/img1.png']];
$downloader = \Downloader\Downloader::get();
$downloader->enableConsoleReports();
$downloader->showDownloadProgress();
$downloader->setRootFolder('/home/users/me/Download/TargetFolder');
$downloader->setOverwriteMode(true);

$downloader->download($downloadData);

下载器配置

enableConsoleReports()

启用触发 'Success'、'Skip'、'Invalid' 和 'Error' 事件的控制台报告。

setOverwriteMode(bool $mode)

覆盖模式允许覆盖已下载的文件(如果 DownloadInfoProvider 中已存在结构)。

默认值 - false(文件不会被覆盖)。

setRootFolder(string $folder)

设置用于下载由 DownloadInfoProvider 提供的结构使用的文件夹。

默认值 - '.'(当前文件夹)。

showDownloadProgress() 和 setDownloadCallback(callable $callback)

showDownloadProgress() 显示文件下载进度的控制台报告。如果设置了自定义进度报告回调(通过 setDownloadCallback 方法),则将使用自定义报告回调;否则将使用默认报告回调。

setFileHandler(FileHandler $fileHandler) 对接收到的文件做些事情

默认情况下,$file 将使用 'file_put_content' 保存到 $filePath。您可以创建自己的文件处理器。为此,创建一个实现 Esoastor\Downloader\Base\FileHandler 接口的类,并使用 setFileHandler() 将其对象设置到 downloader 中。

事件监听器

有四种类型的事件 - 'Start'、'Success'、'Error'、'Skip'、'Invalid'。1 - 创建事件监听器(Downloader\Base\Listener 接口)。2 - 创建监听器,使用 Download 类的 addListeners 方法添加它们。

自定义监听器的方法 execute 将在事件触发时调用。

$downloader->addListeners('Success', [MyListeners\Success::class]);
$downloader->addListeners('Error', [MyListeners\Error::class]);
$downloader->addListeners('Invalid', [MyListeners\Invalid::class]);