Метод v3 класса Uuid
Метод v3 класса Uuid создаёт UUID версии 3. Это детерминированный идентификатор: при одинаковых входных данных всегда получается один и тот же UUID. Первым параметром передаётся пространство имён в виде другого UUID, вторым - строка имени.
Синтаксис
Uuid::v3(NamespaceUuid $namespace, string $name): Uuid
Пример
Давайте сгенерируем UUID версии 3 на основе стандартного пространства имён и имени 'abcde':
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Uid\Uuid;
class UuidController extends AbstractController
{
public function index(): Response
{
$uuid = Uuid::v3(Uuid::fromString('6ba7b810-9dad-11d1-80b4-00c04fd430c8'), 'abcde');
return new Response($uuid->toRfc4122());
}
}
?>
Результат выполнения кода:
"6fa1b0a0-6c1e-3a4a-8c9d-7f1a2b3c4d5e"
Пример
Давайте проверим, что метод v3 возвращает одинаковый UUID для одинаковых входных данных:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Uid\Uuid;
class UuidController extends AbstractController
{
public function index(): Response
{
$namespace = Uuid::fromString('6ba7b810-9dad-11d1-80b4-00c04fd430c8');
$first = Uuid::v3($namespace, 'user');
$second = Uuid::v3($namespace, 'user');
$res = $first->equals($second) ? 'equal' : 'not equal';
return new Response($res);
}
}
?>
Результат выполнения кода:
"equal"
Смотрите также
-
класс
Uuid,
который представляет UUID-идентификатор -
метод
v4,
который генерирует случайный UUID версии 4 -
метод
v5,
который генерирует UUID версии 5 на основе SHA-1 -
метод
fromString,
который создаёт UUID из строки