HTTP Client Hints
, (*1)
Utilities for working with
HTTP Client Hints., (*2)
Installation
Install the latest version with Composer., (*3)
composer require jsor/http-client-hints
Check the Packagist page
for all available versions., (*4)
Example
$resolved = (new Jsor\HttpClientHints\Resolver())
->withAllowedHeaders([
// Process only Width and DPR headers
'Width',
'DPR',
])
->withMapping([
// Map Width header to w key
'width' => 'w',
// Needed to extract the height from the query params
// for recalculation depending on Width if present
'height' => 'h',
])
->resolve($_SERVER, $_GET)
;
if (isset($resolved['dpr'])) {
header('Content-DPR: ' . $resolved['dpr']);
header('Vary: DPR', false);
}
if (isset($resolved['w'])) {
header('Vary: Width', false);
}
// Use $resolved to generate thumbnails.
// If you use Glide (https://github.com/thephpleague/glide), this could look
// something like:
$server = League\Glide\ServerFactory::create([
'source' => 'path/to/source/folder',
'cache' => 'path/to/cache/folder',
]);
$server->outputImage($path, array_merge($_GET, $resolved));
License
Copyright (c) 2016-2018 Jan Sorgalla.
Released under the MIT License., (*5)