РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
966 of 1361 menu

Метод v7 класса Uuid

Метод v7 класса Uuid создаёт UUID версии 7. Такой идентификатор строится на основе текущей временной метки в миллисекундах, что делает его сортируемым по времени создания. Метод является статическим и возвращает объект Uuid. Оставшаяся часть значений заполняется случайными данными.

Синтаксис

Uuid::v7(): Uuid

Пример

Давайте сгенерируем UUID версии 7 и выведем его строковое представление:

<?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::v7(); return new Response((string) $uuid); } } ?>

Результат выполнения кода:

"018f3c1e-7b2a-7c3d-8e4f-1a2b3c4d5e6f"

Пример

Давайте создадим несколько UUID версии 7 и сравним их порядок сортировки:

<?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 { $first = Uuid::v7(); usleep(1000); $second = Uuid::v7(); $res = [$first->toRfc4122(), $second->toRfc4122()]; return new Response(json_encode($res)); } } ?>

Результат выполнения кода:

["018f3c1e-7b2a-7c3d-8e4f-1a2b3c4d5e6f", "018f3c1e-7c1b-7a2c-9f5e-6d7c8b9a0f1e"]

Пример

Давайте сохраним UUID версии 7 в свойстве сущности и вернём его как строку:

<?php namespace App\Entity; use Symfony\Component\Uid\Uuid; class Article { private Uuid $uuid; private string $title; public function __construct(string $title) { $this->uuid = Uuid::v7(); $this->title = $title; } public function getUuid(): Uuid { return $this->uuid; } public function getTitle(): string { return $this->title; } } ?>

Теперь используем сущность в контроллере:

<?php namespace App\Controller; use App\Entity\Article; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; class UuidController extends AbstractController { public function index(): Response { $article = new Article('article'); $res = $article->getUuid()->toRfc4122() . ' ' . $article->getTitle(); return new Response($res); } } ?>

Результат выполнения кода:

"018f3c1e-7b2a-7c3d-8e4f-1a2b3c4d5e6f article"

Смотрите также

  • класс Uuid,
    который представляет UUID-идентификатор
  • метод v4,
    который генерирует UUID версии 4
  • метод v6,
    который генерирует UUID версии 6
  • метод toRfc4122,
    который возвращает строковое представление UUID
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить