21 lines
522 B
PHP
21 lines
522 B
PHP
|
|
<?php
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
namespace Phred\Http\Support;
|
||
|
|
|
||
|
|
use Nyholm\Psr7\Response;
|
||
|
|
use Phred\Http\Contracts\RequestIdProviderInterface;
|
||
|
|
use Psr\Http\Message\ServerRequestInterface;
|
||
|
|
|
||
|
|
final class DefaultRequestIdProvider implements RequestIdProviderInterface
|
||
|
|
{
|
||
|
|
public function provide(ServerRequestInterface $request): string
|
||
|
|
{
|
||
|
|
$incoming = $request->getHeaderLine('X-Request-Id');
|
||
|
|
if ($incoming !== '') {
|
||
|
|
return $incoming;
|
||
|
|
}
|
||
|
|
return bin2hex(random_bytes(8));
|
||
|
|
}
|
||
|
|
}
|