Files
myep/src/Service/RequestIdGenerator.php
T

23 lines
663 B
PHP

<?php
declare(strict_types=1);
namespace App\Service;
class RequestIdGenerator
{
private const TIMESTAMP_LENGTH = 10;
private const RANDOM_LENGTH = 8;
public function generateBaseId(): string
{
$timestampMs = (int) floor(microtime(true) * 1000);
$timestampPart = str_pad(base_convert((string) $timestampMs, 10, 36), self::TIMESTAMP_LENGTH, '0', STR_PAD_LEFT);
$maxRandomValue = (36 ** self::RANDOM_LENGTH) - 1;
$randomPart = str_pad(base_convert((string) random_int(0, $maxRandomValue), 10, 36), self::RANDOM_LENGTH, '0', STR_PAD_LEFT);
return sprintf('r-%s-%s', $timestampPart, $randomPart);
}
}