axel-php/axel

使用Axel加速PHP中的文件下载

0.0.13 2015-06-06 22:35 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:49:14 UTC


README

Codeship Status for ianoshorty/axel-php Code Climate Latest Stable Version Total Downloads Latest Unstable Version License

通用

AXEL-PHP库封装了基于C的Axel库。Axel可以从命令行进行加速下载,类似于wget

AXEL-PHP提供异步和同步下载。使用方法见下文。

AXEL-PHP还包含一个可选的FIFO下载管理器,可以设置当前下载的数量。只需实现AxelDownloadManagerQueueInterface并与您喜欢的排队服务一起使用。

** 请注意:此库作为alpha版本处于积极开发中,可能会随时更改。**

示例用法

同步下载并执行完成回调

$axel = new Axel\AxelDownload();
$axel->start('http://www.google.com', null, null, function($axel, $status, $success, $error) {
    echo 'File Downloaded';
    print_r($status);
});

启动异步下载

$axel = new Axel\AxelDownload();
$axel->startAsync('http://ipv4.download.thinkbroadband.com/1GB.zip', 'test.zip', '~/');

启动异步下载并使用进度回调

$axel = new Axel\AxelDownload();
$axel->startAsync('http://ipv4.download.thinkbroadband.com/1GB.zip', 'test.zip', '~/', function($axel, $status, $success, $error) {
   echo 'Progress updated';
   print_r($status);
});

设置下载/延迟启动

$axel = new Axel\AxelDownload();
$axel->addDownloadParameters([
    'address'           => 'http://www.google.com',
    'filename'          => 'test.html',
    'download-path'     => '~/',
    'callback'          => function($axel, $status, $success, $error) {
        echo 'Progress updated';
        print_r($status);
    }
]);
$axel->startAsync();

获取下载状态

$status = $axel->updateStatus();

清理

$axel->clearCompleted()

Axel管理下载队列(同步)

$dm = new Axel\AxelDownloadManager(new AxelDownloadManagerSyncQueue(), 'axel');
$dm->queueDownload('http://www.google.com', 'file1.html');
$dm->queueDownload('http://www.yahoo.com', 'file2.html');
$dm->processQueue();

版本

0.0.13

安装

先决条件

为了安装RPVR,您将需要

  • PHP 5.4或更高版本
  • Axel - 安装了Axel的Linux服务器

安装说明

首选的安装方法是使用ComposerPackagist

  1. 在目标系统上安装axel命令行工具 - $ sudo apt-get install axel
  2. 安装AXEL-PHP库 - $ composer require axel-php/axel

开发

想要贡献?太好了!请随时与我联系,我们可以合作,或者按照您的喜好进行分支/拉取。

待办事项

  • 可能的日志选项/写入日志文件?
  • 智能处理并发连接和并发下载
  • 检查下载目录的写权限
  • 暂停队列(可能是子类?)
  • 测试队列异步

许可

MIT许可证(MIT)

版权所有 (c) 2015 Ian Outterside (Ian Builds Apps)。

在此授予任何获得此软件及其相关文档文件(“软件”)副本的任何人无限制使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供方提供软件的人这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不受任何形式的保证,明示或暗示,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论此类责任是基于合同、侵权或其他方式,是否因软件或其使用或其他方式而产生。