HumusStreamResponseSender

Zf2 Module that sends stream responses with additional features like download resume and speed limit

MIT License

Downloads
752
Stars
12
Committers
4

HumusStreamResponseSender

Introduction

HumusStreamResponseSender is a Zend Framework 2 module that sends stream responses with HTTP Range header, XSendFile & pecl_http support.

Requirements

Features / Goals

  • Send stream responses with Zend Framwork 2 [COMPLETE]
  • Limit download speed [COMPLETE]
  • Allow for range support (download resume) [COMPLETE]
  • Send streams with pecl_http extension [INCOMPLETE]
  • Send streams with X-SendFile [INCOMPLETE]
  • Send streams with X-Accel-Redirect [INCOMPLETE]
  • Add controller plugin for easy streaming from controllers [COMPLETE]

Installation

  1. Add "prolic/humus-stream-response-sender": "dev-master" to your composer.json
  2. Run php composer.phar install
  3. Enable the module in your config/application.config.php by adding HumusStreamResponseSender to modules

Configuration

Sample configuration:

<?php
return array(
    'HumusStreamResponseSender' => array(
        'enable_speed_limit' => true,
        'enable_range_support' => true,
        'chunk_size' => 1024 * 1024 //  = 1MB/s
    ),
);

Usage of controller plugin

The simplest way to stream a response from a controller, is the stream plugin.

class IndexController extends AbstractActionController
{
    public function fileAction()
    {
        return $this->plugin('stream')->binaryFile('/path/to/my/file');
    }
}

Additional notes

If the speed limit switch is set to true, the used chunksize will also be the download speed in bytes per second

The default configuration is:

  • enable_speed_limit = false
  • enable_range_support = false
  • chunk_size = 262144
Package Rankings
Top 13.69% on Packagist.org
Badges
Extracted from project README
Coverage Status Dependency Status