<? phpukraine ІНСТРУМЕНТИ
Пошук по платформі

Генератор ULID

Генерує ULID у браузері й показує час, зашитий у перших десяти символах кожного.

У БРАУЗЕРІ NEW ГЕНЕРАТОР
РОБОЧА ЗОНА
ЩО РОБИТЬ

Дає ідентифікатори, які сортуються за часом і читаються очима

Ідентифікатори для замовлень, подій чи файлів, які мають сортуватись у порядку створення й не виглядати як автоінкремент. Інструмент генерує ULID у браузері й поруч показує час, з якого кожен складено, щоб було видно, як вони впорядковані.

ЯК ЦЕ ПРАЦЮЄ В PHP

ULID це 128 бітів: 48 бітів часу в мілісекундах і 80 випадкових, записані 26 символами Crockford base32. У Laravel є Str::ulid() і трейт HasUlids для моделей, у Symfony клас Ulid із symfony/uid. Обидва дають монотонні значення в межах мілісекунди.

use Illuminate\Support\Str;

$id = (string) Str::ulid();   // 01J6ZK8Q3W9X4T2N5R7V8Y0AB1

// Модель із ULID замість автоінкремента
use Illuminate\Database\Eloquent\Concerns\HasUlids;

class Upload extends Model
{
    use HasUlids;
}

// Symfony
$ulid = new \Symfony\Component\Uid\Ulid();
$createdAt = $ulid->getDateTime();   // час із перших 48 бітів
ПИТАННЯ

Що питають про цей інструмент

Обидва містять час на початку й сортуються. ULID коротший (26 символів проти 36), без дефісів і в алфавіті Crockford без схожих символів, тому його зручно диктувати й читати з логу. UUID v7 стандартніший: його розуміють тип uuid у PostgreSQL і будь-яка бібліотека. Для публічних ідентифікаторів у URL часто беруть ULID, для первинних ключів UUID v7.

ДАЛІ ПО ТЕМІ