middlewares/encoder

Middleware to encode the response body to gzip or deflate

v2.0.0 2019-11-29 18:34 UTC

README

Latest Version on Packagist Software License Build Status Quality Score Total Downloads

Middleware to encode the response body to gzip or deflate if the Accept-Encoding header is present and adds the Content-Encoding header. This package is splitted into the following components:

You can use the component ContentEncoding in the middlewares/negotiation to negotiate the encoding to use.

Requirements

Installation

This package is installable and autoloadable via Composer as middlewares/encoder.

composer require middlewares/encoder

GzipEncoder

Compress the response body to GZIP format using gzencode and add the header Content-Encoding: gzip.

Note: The response body is encoded only if the header contains the value gzip in the header Accept-Encoding.

Dispatcher::run([
	new Middlewares\GzipEncoder(),
]);

Optionally, you can provide a Psr\Http\Message\StreamFactoryInterface that will be used to create the response body. If it's not defined, Middleware\Utils\Factory will be used to detect it automatically.

$streamFactory = new MyOwnStreamFactory();

$encoder = new Middlewares\GzipEncoder($streamFactory);

DeflateEncoder

Compress the response body to Deflate format using gzdeflate and add the header Content-Encoding: deflate.

Note: The response body is encoded only if the header contains the value deflate in the header Accept-Encoding.

Dispatcher::run([
	new Middlewares\DeflateEncoder(),
]);

Optionally, you can provide a Psr\Http\Message\StreamFactoryInterface that will be used to create the response body. If it's not defined, Middleware\Utils\Factory will be used to detect it automatically.

$streamFactory = new MyOwnStreamFactory();

$encoder = new Middlewares\DeflateEncoder($streamFactory);

Please see CHANGELOG for more information about recent changes and CONTRIBUTING for contributing details.

The MIT License (MIT). Please see LICENSE for more information.