prolic/humus-stream-response-sender

ZF2 module that can send stream responses with http range header, xsendfile & pecl_http support

v0.3.0 2018-11-22 16:08 UTC

This package is auto-updated.

Last update: 2020-07-26 16:34:38 UTC


README

Build Status Coverage Status Total Downloads Latest Stable Version Latest Unstable Version Dependency Status

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