Size: a a a

2020 August 06

AM

Artem Molotov in PHP
Sergey Milimko
ниже описываются особенности реализации 4 версии идентификаторов
раздел Формат прочитай
источник

SM

Sergey Milimko in PHP
И ещё не забудь проверить, что битность твоей имплементации не меньше битности uuid4
Какя ещё моя имплементация. Я точно такой же uuid4 генерирую. Есть стандарт того что называется uuid4
источник

AM

Artem Molotov in PHP
Sergey Milimko
И ещё не забудь проверить, что битность твоей имплементации не меньше битности uuid4
Какя ещё моя имплементация. Я точно такой же uuid4 генерирую. Есть стандарт того что называется uuid4
Ты говорил, что запилил свой код, который работает быстрее. Реализация = имплементация (условно говоря). Есть стандарт, ты реализовал код по стандарту. Об этом и речь
источник

AM

Artem Molotov in PHP
Я вот не уверен, что твоя реализация в точности соответствует
источник

SM

Sergey Milimko in PHP
это не должно тебя беспокоить
источник

SM

Sergey Milimko in PHP
Наш кейс ближе был вот к этому:
Uuid::fromString('2219e1db-4de1-4ff6-8ad7-f1abb5609d2d')->toString();
источник

AM

Artem Molotov in PHP
Sergey Milimko
это не должно тебя беспокоить
В смысле не должно беспокоить? Лол.
источник

SM

Sergey Milimko in PHP
т.е. парсим строку, потом через время конвертируем опять в строку
источник

SM

Sergey Milimko in PHP
Artem Molotov
В смысле не должно беспокоить? Лол.
Это никак не относится к тормознутости либы
источник

AM

Artem Molotov in PHP
Sergey Milimko
Наш кейс ближе был вот к этому:
Uuid::fromString('2219e1db-4de1-4ff6-8ad7-f1abb5609d2d')->toString();
Окей. Го в студию свою реализацию.
источник

AM

Artem Molotov in PHP
Sergey Milimko
Это никак не относится к тормознутости либы
Относится. Если твоя реализация не соответствует стандарту или не выполняет каких-либо требований, то и не удивительно, что она может быть быстрее. В силу того, что ущербнее по другим факторам.
источник

SM

Sergey Milimko in PHP
Ладно проверяй. Лишний тест нам не повредит
private static function uuid4(): string
   {
       $bytes = random_bytes(16);
       $bytes[6] = chr(ord($bytes[6]) & 0x0f | 0x40); // set version to 0100
       $bytes[8] = chr(ord($bytes[8]) & 0x3f | 0x80); // set bits 6-7 to 10
       return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($bytes), 4));
   }
источник

АГ

Алексей Гевондян... in PHP
Руслан
перезапустил

PECL | 0.0000 sec/10000 | 0.0000000 sec/one
RHUMSAA | 0.0127 sec/10000 | 0.0000013 sec/one
 RAMSEY | 0.0450 sec/10000 | 0.0000045 sec/one
пекл хренасе
источник

Р

Руслан in PHP
Алексей Гевондян
пекл хренасе
Пакет не истталится
источник

АГ

Алексей Гевондян... in PHP
а
источник

AM

Artem Molotov in PHP
Sergey Milimko
Ладно проверяй. Лишний тест нам не повредит
private static function uuid4(): string
   {
       $bytes = random_bytes(16);
       $bytes[6] = chr(ord($bytes[6]) & 0x0f | 0x40); // set version to 0100
       $bytes[8] = chr(ord($bytes[8]) & 0x3f | 0x80); // set bits 6-7 to 10
       return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($bytes), 4));
   }
где парсинг?
источник

АГ

Алексей Гевондян... in PHP
крч можно юзать рамсей ууид. нет проблем) не надо надумывать)
источник

SM

Sergey Milimko in PHP
его нет, мы от него отказались же
источник

SM

Sergey Milimko in PHP
храним юиды как строку, а не объект Uuid
источник

SM

Sergey Milimko in PHP
во время рантайма
источник