-
-
Notifications
You must be signed in to change notification settings - Fork 0
Feature Uuid v8
github-actions[bot] edited this page Jul 15, 2026
·
1 revision
122 бита под ваши данные в валидной оболочке UUID: биты версии и варианта проставляются фабрикой, остальное — целиком ваше (RFC 9562 §5.8).
use CloudCastle\Uuid\UuidFactory;
$payload = hash('sha256', 'мои-данные', true); // любые байты
$uuid = (new UuidFactory())->uuid8(substr($payload, 0, 16));
$uuid->version(); // 8 — всегда, поверх любых байтов
$uuid->variant(); // UuidVariant::RfcПопытка «подделать» другую версию через нагрузку невозможна: маска фабрики перезаписывает биты версии и варианта.
- Стандартный контейнер для доменных схем идентификаторов (шардинг-ключи, хеши).
- Совместим со всей инфраструктурой UUID: формы, сравнение, хранение.
- Семантику 122 бит знаете только вы — документируйте схему.
- Встраивание доменной информации (регион, тип сущности) с сохранением формата UUID.
flowchart LR
P["16 байт нагрузки"] --> F[UuidFactory]
F -->|"маска версии 8 + варианта"| U[Uuid v8]
sequenceDiagram
participant A as Приложение
participant F as UuidFactory
A->>F: uuid8(байты)
F->>F: длина = 16?
F->>F: (байты & AND) | OR
F-->>A: Uuid v8
| Возможность | Uuid | ramsey/uuid | symfony/uid | 🏆 Победитель |
|---|---|---|---|---|
| UUID v8 | ✅ | ✅ | ✅ | Паритет |
| Защита битов версии от подделки | ✅ | ✅ | ✅ | Паритет |
CloudCastle Uuid · · PHP 8.1+
GitHub · Packagist · Releases · Discussions · Issues
Email · Telegram · VK · Сетка · 💜 Поддержать проект
Исходники Wiki — каталог wiki/ в репозитории (синхронизация через GitHub Actions)