%PDF- %PDF-
| Direktori : /data/www_bck/loslex_bck/tracker/vendor/slim/slim/Slim/Handlers/ |
| Current File : //data/www_bck/loslex_bck/tracker/vendor/slim/slim/Slim/Handlers/AbstractHandler.php |
<?php
/**
* Slim Framework (https://slimframework.com)
*
* @license https://github.com/slimphp/Slim/blob/3.x/LICENSE.md (MIT License)
*/
namespace Slim\Handlers;
use Psr\Http\Message\ServerRequestInterface;
abstract class AbstractHandler
{
/**
* Known handled content types
*
* @var array
*/
protected $knownContentTypes = [
'application/json',
'application/xml',
'text/xml',
'text/html',
];
/**
* Determine which content type we know about is wanted using `Accept` header
*
* Note: This method is a bare-bones implementation designed specifically for
* Slim's error handling requirements. Consider a fully-feature solution such
* as willdurand/negotiation for any other situation.
*
* @param ServerRequestInterface $request
*
* @return string
*/
protected function determineContentType(ServerRequestInterface $request)
{
$acceptHeader = $request->getHeaderLine('Accept');
$selectedContentTypes = array_intersect(explode(',', $acceptHeader), $this->knownContentTypes);
if (count($selectedContentTypes)) {
return current($selectedContentTypes);
}
// handle +json and +xml specially
if (preg_match('/\+(json|xml)/', $acceptHeader, $matches)) {
$mediaType = 'application/' . $matches[1];
if (in_array($mediaType, $this->knownContentTypes)) {
return $mediaType;
}
}
return 'text/html';
}
}