Skip to content

Commit 0bfbb69

Browse files
committed
optimize code
1 parent a423ec4 commit 0bfbb69

File tree

1 file changed

+13
-17
lines changed

1 file changed

+13
-17
lines changed

src/StringHelper.php

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -301,28 +301,24 @@ public static function truncateString(?string $sString = '', ?int $iLength = 100
301301
}
302302

303303
/**
304-
* Generating a unique UUID of type 4a27ab2e-ae70-419f-9a26-42a67805d87e.
304+
* Generating a unique UUID v4 of (4a27ab2e-ae70-419f-9a26-42a67805d87e).
305305
*
306-
* Генерация уникального UUID типа 4a27ab2e-ae70-419f-9a26-42a67805d87e.
306+
* Генерация уникального UUID версии 4 (4a27ab2e-ae70-419f-9a26-42a67805d87e).
307307
*
308-
* @return string
309-
*
310-
* @author myrusakov.ru
311-
* @edit Leonid Sheikman (leonid74)
308+
* @return string string uuid
312309
*/
313310
public static function generateUUID(): string
314311
{
315-
return \sprintf(
316-
'%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
317-
\mt_rand(0, 0xffff),
318-
\mt_rand(0, 0xffff),
319-
\mt_rand(0, 0xffff),
320-
\mt_rand(0, 0x0fff) | 0x4000,
321-
\mt_rand(0, 0x3fff) | 0x8000,
322-
\mt_rand(0, 0xffff),
323-
\mt_rand(0, 0xffff),
324-
\mt_rand(0, 0xffff)
325-
);
312+
$bytes = random_bytes(16);
313+
314+
// Устанавливаем версию 4 (биты 12-15 первого символа времени)
315+
$bytes[6] = chr(ord($bytes[6]) & 0x0f | 0x40);
316+
317+
// Устанавливаем вариант RFC 4122 (10xx), изменяя биты 6-7 первого символа последовательности
318+
$bytes[8] = chr(ord($bytes[8]) & 0x3f | 0x80);
319+
320+
// Форматируем и возвращаем UUID
321+
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($bytes), 4));
326322
}
327323

328324
/**

0 commit comments

Comments
 (0)