1. Go to this page and download the library: Download middlewares/negotiation library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
middlewares / negotiation example snippets
Dispatcher::run([
new Middlewares\ContentType(),
new Middlewares\ContentLanguage(['en', 'gl', 'es']),
new Middlewares\ContentEncoding(['gzip', 'deflate']),
]);
//Use the default types
$negotiator = new Middlewares\ContentType();
//Use only few types
$negotiator = new Middlewares\ContentType(['html', 'json']);
//Use only few types and configure some of them
$negotiator = new Middlewares\ContentType([
'html',
'json',
'txt' => [
'extension' => ['txt'],
'mime-type' => ['text/plain'],
'charset' => true,
]
]);
$responseFactory = new MyOwnResponseFactory();
//Use default html format (the first provided) if no valid format was detected (By default)
$negotiator = new Middlewares\ContentType(['html', 'json']);
//Return a 406 response if no valid format was detected
$negotiator = (new Middlewares\ContentType(['html', 'json']))->errorResponse();
//Return a 406 response using a specific responseFactory if no valid format was detected
$negotiator = (new Middlewares\ContentType(['html', 'json']))->errorResponse($responseFactory);
$negotiator = (new Middlewares\ContentType())->charsets(['UTF-8', 'ISO-8859-1']);
//Disable noSniff header
$negotiator = (new Middlewares\ContentType())->noSniff(false);
$request = Factory::createServerRequest('GET', '/')
->withHeader('Accept-Language', 'gl-es, es;q=0.8, en;q=0.7');
Dispatcher::run([
new Middlewares\ContentLanguage(['es', 'en']),
function ($request) {
$language = $request->getHeaderLine('Accept-Language');
switch ($language) {
case 'es':
return 'Hola mundo';
case 'en':
return 'Hello world';
}
}
], $request);
$request = Factory::createServerRequest('GET', '/en/hello-world');
Dispatcher::run([
(new Middlewares\ContentLanguage(['es', 'en']))->usePath(),
function ($request) {
$language = $request->getHeaderLine('Accept-Language');
switch ($language) {
case 'es':
return 'Hola mundo';
case 'en':
return 'Hello world';
}
}
], $request);
$responseFactory = new MyOwnResponseFactory();
//Use not only the Accept-Language header but also the path prefix to detect the language
$negotiator = (new Middlewares\ContentLanguage(['es', 'en']))->usePath();
//Returns a redirection with the language in the path if it's missing
$negotiator = (new Middlewares\ContentLanguage(['es', 'en']))->usePath()->redirect();
//Returns a redirection using a specific response factory
$negotiator = (new Middlewares\ContentLanguage(['es', 'en']))->usePath()->redirect($responseFactory);
$request = Factory::createServerRequest('GET', '/')
->withHeader('Accept-Encoding', 'gzip,deflate');
Dispatcher::run([
new Middlewares\ContentEncoding(['gzip']),
function ($request) {
echo $request->getHeaderLine('Accept-Encoding'); //gzip
}
], $request);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.