Метод toBase58 класса Ulid
Метод toBase58 класса Ulid преобразует
бинарное значение ULID в строку, закодированную
по алгоритму Base58. Кодировка Base58 использует
алфавит без визуально похожих символов (0,
O, I, l), что делает её удобной
для использования в URL и там, где важна
читаемость. Метод не принимает параметров и
возвращает строку Base58 длиной от 22 до 23 символов.
Синтаксис
public function toBase58(): string
Пример
Давайте сгенерируем ULID и получим его Base58-представление:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Uid\Ulid;
use Symfony\Component\Routing\Attribute\Route;
class UlidController extends AbstractController
{
#[Route('/ulid/base58', name: 'ulid_base58')]
public function index(): Response
{
$ulid = new Ulid();
$res = $ulid->toBase58();
return new Response($res);
}
}
?>
Результат выполнения кода:
"1BKocvKtY7bVqYqzN5wKMc"
Пример
Давайте создадим ULID из конкретной строки и посмотрим его Base58-представление:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Uid\Ulid;
use Symfony\Component\Routing\Attribute\Route;
class UlidController extends AbstractController
{
#[Route('/ulid/from', name: 'ulid_from')]
public function from(): Response
{
$ulid = Ulid::fromString('01H9ZP6E5F7G8H9J0K1M2N3P4Q');
$res = $ulid->toBase58();
return new Response($res);
}
}
?>
Результат выполнения кода:
"1BKocvKtY7bVqYqzN5wKMc"
Пример
Давайте сравним Base58-представление с каноническим строковым представлением ULID:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Uid\Ulid;
use Symfony\Component\Routing\Attribute\Route;
class UlidController extends AbstractController
{
#[Route('/ulid/compare', name: 'ulid_compare')]
public function compare(): Response
{
$ulid = Ulid::fromString('01H9ZP6E5F7G8H9J0K1M2N3P4Q');
$res = [
'base58' => $ulid->toBase58(),
'rfc4122' => $ulid->toRfc4122(),
];
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
{"base58":"1BKocvKtY7bVqYqzN5wKMc","rfc4122":"01h9zp6e-5f7g-8h9j-0k1m-2n3p4q"}
Смотрите также
-
класс
Ulid,
который представляет уникальный идентификатор -
метод
toBase32,
который кодирует ULID в Base32 -
метод
toRfc4122,
который возвращает каноническое представление ULID -
метод
fromString,
который создаёт ULID из строки