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

Метод fromBinary класса Ulid

Метод fromBinary класса Ulid создаёт объект ULID из бинарной строки длиной ровно 16 байт. Это удобно, когда ULID хранится в базе данных в бинарном виде, например в поле типа BINARY(16) или BLOB. Первым параметром передаётся сама бинарная строка. Если длина строки не равна 16 байтам, метод выбросит исключение InvalidArgumentException. Обратной операцией является метод toBinary, который возвращает 16-байтовое представление ULID.

Синтаксис

public static function fromBinary(string $ulid): static

Пример

Давайте создадим ULID из бинарной строки и выведем его:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Uid\Ulid; class UlidController extends AbstractController { public function index(): Response { $binary = hex2bin('017f22e279b0b5c9d3c1a5b7e8f9a0b1'); $ulid = Ulid::fromBinary($binary); return new Response($ulid->toBase32()); } } ?>

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

"01F8Z9V6Y4W3X2T1S0R9Q8P7M6"

Пример

Давайте проверим, что метод выбрасывает исключение при неверной длине строки:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Uid\Ulid; class UlidController extends AbstractController { public function index(): Response { try { $ulid = Ulid::fromBinary('abcde'); } catch (\InvalidArgumentException $e) { return new Response($e->getMessage()); } return new Response('ok'); } } ?>

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

"Invalid ULID: abcde."

Пример

Давайте сохраним ULID в бинарном виде и восстановим его обратно:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Uid\Ulid; class UlidController extends AbstractController { public function index(): Response { $ulid = new Ulid(); $binary = $ulid->toBinary(); $restored = Ulid::fromBinary($binary); return new Response($ulid->equals($restored) ? 'equal' : 'not equal'); } } ?>

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

"equal"

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

  • класс Ulid,
    который представляет собой ULID-идентификатор
  • метод fromString,
    который создаёт ULID из строки
  • метод toRfc4122,
    который возвращает ULID в формате RFC 4122
  • метод toBase32,
    который возвращает ULID в формате Base32
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить