2017 © Pedro Peláez
 

library body-parser

PSR7 body parser middleware

image

juliangut/body-parser

PSR7 body parser middleware

  • Monday, October 16, 2017
  • by juliangut
  • Repository
  • 1 Watchers
  • 1 Stars
  • 83 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 4 % Grown

The README.md

PHP version Latest Version License, (*1)

Build Status Style Check Code Quality Code Coverage, (*2)

Total Downloads Monthly Downloads, (*3)

body-parser

PSR7 request body parser middleware., (*4)

PSR7 implementations doesn't normally parse request body to be available through $request->getParsedBody() or they only do it for certain request methods or content types., (*5)

The best way to be fully confident that your request content will be parsed correctly while using the PSR7 implementation that you want is through the use of a middleware responsible of this task., (*6)

Installation

Composer

composer require juliangut/body-parser

Usage

Add as many content decoders as you want to cover your application needs based on request's Content-Type header., (*7)

Decoders are assign to one or more HTTP methods., (*8)

Integrate in your middleware aware application workflow., (*9)

require './vendor/autoload.php';

use Jgut\BodyParser\Decoder\Json;
use Jgut\BodyParser\Decoder\Urlencoded;
use Jgut\BodyParser\Parser;
use Negotiator\Negtiator;

$bodyParser = new Parser(new Negotiator());
$bodyParser->addDecoder(new Urlencoded()); // Assigned to all requests
$bodyParser->addDecoder(new Json(), ['POST', 'PUT']); // Assigned only to POST and PUT requests

$app = new \YourMiddlewareAwareApplication();
$app->addMiddleware($bodyParser);
$app->run();

Review the documentation of the PSR7 implementation you use as it may already parse request body in some cases. You don't want to do the same job twice., (*10)

Decoders

URL encoded

$decoder = new \Jgut\BodyParser\Decoder\UrlEncoded();

Supported MIME types:, (*11)

  • application/x-www-form-urlencoded

JSON

$decoder = new \Jgut\BodyParser\Decoder\Json();

Supported MIME types:, (*12)

  • application/json
  • text/json
  • application/x-json

XML

$decoder = new \Jgut\BodyParser\Decoder\Xml();

Supported MIME types:, (*13)

  • application/xml
  • text/xml
  • application/x-xml

CSV

$decoder = new \Jgut\BodyParser\Decoder\Csv($delimiter = ',', $enclosure = '"', $escape = '\\');

Supported MIME types:, (*14)

  • text/csv

Custom

You can create your own decoder implementing Jgut\BodyParser\Decoder\Decoder interface., (*15)

For example you could implement a YAML decoder for application/x-yaml and text/yaml MIME types., (*16)

Contributing

Found a bug or have a feature request? Please open a new issue. Have a look at existing issues before., (*17)

See file CONTRIBUTING.md, (*18)

License

See file LICENSE included with the source code for a copy of the license terms., (*19)

The Versions