компилируется...
Перейти к основному содержанию
Рекомендовать во Вконтакте Рекомендовать в Фейсбуке Рекомендовать в Твиттере

Новое в Symfony 4.4: представляем новый UUID Polyfill для Symfony

UUID (Универсальный уникальный идентификатор) - это 128-битный номер, используемый для идентификации информации в компьютерных системах. Они становятся все более популярными в PHP/Symfony приложениях, где некоторые разработчики используют их даже в качестве идентификаторов для записей баз данных (вместо традиционного целого числа для авто инкремента).

Существуют различные варианты и версии UUID, поэтому большинство разработчиков используют внешние библиотеки, такие как пакет UUID PECL и библиотеку ramsey/uuid для создания этих UUID.

Symfony Polyfills предоставляет PHP-реализации популярных функций, классов и констант, представленных в более новых версиях PHP или расширениях PHP. Они позволяют, например, использовать класс исключения JsonException PHP 7.3 в любой версии PHP или функцию password_algos() PHP 7.4 в любой предыдущей версии PHP.

Учитывая популярность UUID, мы создали новый полифил UUID, который дополняет пакет UUID PECL и может быть использован в PHP 5.3 или выше. Сначала установите полифил в ваш проект:

composer require symfony/polyfill-uuid

Если пакет UUID PECL установлен в вашей системе, этот полифил ничего не делает. В противном случае, он определяет точно такие же константы и функции пакета PECL, так что вы можете использовать их в своем коде:

uuid = uuid_create(UUID_TYPE_RANDOM);
// $uuid = '79a0f84a-2f15-4ea9-bb2c-49e645845100'

$isValid = uuid_is_valid($uuid);
// $isValid = true

// Другие полезные функции: uuid_compare(), uuid_is_null(), uuid_type(),
// uuid_variant(), uuid_time(), uuid_mac(), uuid_parse(), uuid_unparse()

UUID Polyfill может полностью заменить пакет UUID PECL, если вы не можете или не хотите устанавливать пакет PECL. Однако он не предоставляет (и никогда не будет предоставлять) тех же возможностей, что и полнофункциональные библиотеки, такие как ramsey/uid.

Что касается производительности, полифил работает быстрее или медленнее, чем пакет PECL, в зависимости от создаваемой версии UUID:

Время создания UUID v1среднее значениеРазница
PECL0.525μsБыстрее
Symfony Polyfill1.401μs2.67x медленнее
Ramsey/UUID3.907μs7.45x медленнее
Время создания UUID v4Среднее значениеРазница
PECL4.620μs3.25x slower
Symfony Polyfill1.422μsFastest
Ramsey/UUID1.851μs1.30x slower

Комментарии

Пока что нет комментариев, вы можете быть первым.
Войти или Регистрация , чтобы оставлять комментарии.
Наш сайт использует куки. Узнайте больше о нашем использовании куки: политика в отношении файлов cookie
Наш сайт существует только благодаря показу онлайн-рекламы нашим посетителям.
Пожалуйста, поддержите нас, отключив блокировку рекламы.