middlewares / csv-payload
Middleware to parse the CSV body of the request
Requires
- php: ^7.2 || ^8.0
- league/csv: ^9.0
- middlewares/payload: ^1.0
- middlewares/utils: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.0
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^8|^9
- squizlabs/php_codesniffer: ^3.0
- zendframework/zend-diactoros: ^1.3
This package is auto-updated.
Last update: 2024-11-29 05:32:56 UTC
README
Extends middlewares/payload to add support for parsing the CSV body of the request.
Requirements
- PHP >= 7.0
- A PSR-7 http message implementation (Diactoros, Guzzle, Slim, etc...)
- A PSR-15 middleware dispatcher
Installation
This package is installable and autoloadable via Composer as middlewares/csv-payload.
composer require middlewares/csv-payload
CsvPayload
Parses the CSV payload of the request. Uses league/csv to read the CSV values. Contains the following options to configure the CSV Reader
object:
delimiter($delimiter)
To configure the CSV delimiter control character (one character only). If the submitted character is invalid an InvalidArgumentException
exception is thrown.
enclosure($enclosure)
To configure the CSV enclosure control character (one character only). If the submitted character is invalid an InvalidArgumentException
exception is thrown.
escape($escape)
To configure the CSV escape control character (one character only). If the submitted character is invalid an InvalidArgumentException
exception is thrown.
header($header)
To configure the CSV header line. If the submitted header value is less than 0 an InvalidArgumentException
exception is thrown.
methods(array $methods)
To configure the allowed methods. By default only the requests with the method POST, PUT, PATCH, DELETE, COPY, LOCK, UNLOCK
are handled.
contentType(array $contentType)
To configure all Content-Type headers used in the request. By default is text/csv
override($override = true)
To override the previous parsed body if exists (false
by default)
$dispatcher = new Dispatcher([ (new Middlewares\CsvPayload()) ->delimiter(";") ->enclosure("'") ->escape("\\") ]); $response = $dispatcher->dispatch(new ServerRequest());
Please see CHANGELOG for more information about recent changes and CONTRIBUTING for contributing details.
The MIT License (MIT). Please see LICENSE for more information.