2017 © Pedro Peláez
 

library humus-stream-response-sender

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

image

prolic/humus-stream-response-sender

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

  • Wednesday, July 5, 2017
  • by prolic
  • Repository
  • 2 Watchers
  • 11 Stars
  • 271 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 4 Forks
  • 9 Open issues
  • 5 Versions
  • 1 % Grown

The README.md

HumusStreamResponseSender

Build Status Coverage Status Total Downloads Latest Stable Version Latest Unstable Version Dependency Status, (*1)

Introduction

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

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:, (*3)

<?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., (*4)

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, (*5)

The default configuration is: - enable_speed_limit = false - enable_range_support = false - chunk_size = 262144, (*6)

The Versions

04/07 2017