esoastor / downloader
Requires
- php: >=8.0
- ext-curl: *
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]);