Download the PHP package middlewares/negotiation without Composer
On this page you can find all versions of the php package middlewares/negotiation. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download middlewares/negotiation
More information about middlewares/negotiation
Files in middlewares/negotiation
Package negotiation
Short Description Middleware to implement content negotiation
License MIT
Homepage https://github.com/middlewares/negotiation
Informations about the package negotiation
middlewares/negotiation
Middleware using wildurand/Negotiation to implement content negotiation. Contains the following components:
- ContentType
- ContentLanguage
- ContentEncoding
Requirements
- PHP >= 7.2
- A PSR-7 http library
- A PSR-15 middleware dispatcher
Installation
This package is installable and autoloadable via Composer as middlewares/negotiation.
Example
ContentType
To detect the preferred mime type using the Accept
header and the file extension and edit the header with this value. A Content-Type
header is also added to the response if it's missing.
Define the formats to negotiate sorted by priority in the first argument. By default uses these
errorResponse
If no format matches the negotiation, by default the middleware use the first value in the list of available formats (by default text/html
). Use this option to return a 406
error. Optionally, you can provide a Psr\Http\Message\ResponseFactoryInterface
that will be used to create the response. If it's not defined, Middleware\Utils\Factory will be used to detect it automatically.
charsets
The available charsets to negotiate with the Accept-Charset
header. By default is UTF-8
.
noSniff
Adds the X-Content-Type-Options: nosniff
header, to mitigating MIME confusión attacks.. Enabled by default.
attribute
To store the format name (json
, html
, css
etc) in an attribute of the ServerRequest
.
ContentLanguage
To detect the preferred language using the Accept-Language
header or the path prefix and edit the header with this value. A Content-Language
header is also added to the response if it's missing.
The first argument is an array with the available languages to negotiate sorted by priority. The first value will be used as default if no other languages is choosen in the negotiation.
usePath
By enabling this option, the base path will be used to detect the language. This is useful if you have different paths for each language, for example /gl/foo
and /en/foo
.
Note: the language in the path has preference over the Accept-Language
header.
redirect
Used to return a 302
responses redirecting to the path containing the language. This only works if usePath
is enabled, so for example, if the request uri is /welcome
, returns a redirection to /en/welcome
.
ContentEncoding
To detect the preferred encoding type using the Accept-Encoding
header and edit the header with this value.
Please see CONTRIBUTING for contributing details.
The MIT License (MIT). Please see LICENSE for more information.
All versions of negotiation with dependencies
willdurand/negotiation Version ^3.0
middlewares/utils Version ^3.0 || ^4.0
psr/http-server-middleware Version ^1.0