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

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

Метод v4 класса Uuid создаёт UUID версии 4. Такой идентификатор формируется из случайных байтов, а не из времени или MAC-адреса. Метод не принимает обязательных параметров и возвращает новый объект Uuid. Благодаря высокой энтропии вероятность коллизии крайне мала, поэтому v4 удобно использовать для первичных ключей, токенов и внешних идентификаторов.

Синтаксис

Uuid::v4()

Пример

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

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

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

"9f1c7c2e-3b5a-4d8e-9a1b-2c3d4e5f6a7b"

Пример

Давайте сгенерируем несколько идентификаторов и убедимся, что они различаются:

<?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 { $res = [ Uuid::v4()->toRfc4122(), Uuid::v4()->toRfc4122(), Uuid::v4()->toRfc4122(), ]; return new Response(implode(', ', $res)); } } ?>

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

["1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "6f5e4d3c-2b1a-4f8e-9d7c-6b5a4f3e2d1c", "0a1b2c3d-4e5f-4a6b-7c8d-9e0f1a2b3c4d"]

Пример

Давайте используем UUID версии 4 как первичный ключ сущности:

<?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Uid\Uuid; #[ORM\Entity] class Article { #[ORM\Id] #[ORM\Column(type: 'uuid', unique: true)] private Uuid $id; #[ORM\Column(type: 'string')] private string $title; public function __construct() { $this->id = Uuid::v4(); } public function getId(): Uuid { return $this->id; } public function getTitle(): string { return $this->title; } public function setTitle(string $title): void { $this->title = $title; } } ?>

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

"3f8e2d1c-4b5a-4c6d-8e9f-0a1b2c3d4e5f"

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

  • класс Uuid,
    который представляет UUID идентификатор
  • метод v1,
    который генерирует UUID на основе времени
  • метод v7,
    который генерирует UUID на основе Unix-времени
  • метод fromString,
    который создаёт UUID из строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить