Nuevo en Symfony 5.1: Componente Uid

Los UID (universally unique identifiers), tales como los UUID, son cada vez más populares en el ámbito del desarrollo web. Se usan en algunas URLs, como claves de las caches, como claves primarias en bases de datos, etc.

Por eso en Symfony 5.1 hemos añadido un nuevo componente llamado Uid, que genera algunos de estos UIDs e incluye algunas utilidades para ellos. La primera versión del componente soporta tanto UUID como ULID:

use Symfony\Component\Uid\Uuid;
use Symfony\Component\Uid\Ulid;
 
// generando un UUID aleatorio de tipo 4
// (todos los tipos de UUID están soportados)
$uuid = Uuid::v4();
 
// generando un UUID de tipo 6 (este tipo no es parte del estándar, pero el
// componente lo soporta porque es bastante popular)
$uuid = Uuid::v6();
 
// generando un ULID (solo hay un tipo de ULID)
$ulid = new Ulid();

El componente también incluye las utilidades esenciales para manejar UIDs:

// comprobando si un UUID es null
use Symfony\Component\Uid\NilUuid;
if ($uuid instanceof NilUuid) {
    // ...
}
 
// comparando UUIDs
$uuid1 = Uuid::v1();
$uuid4 = Uuid::v4();
$uuid1->equals($uuid4); // false
 
// convirtiendo UIDs en diferentes notaciones
$ulid = Ulid::fromString('01E439TP9XJZ9RPFH3T1PYBCR8');
$ulid->toBinary();  // string(16) "..." (los contenidos binarios no se pueden imprimir)
$ulid->toBase32();  // string(26) "01E439TP9XJZ9RPFH3T1PYBCR8"
$ulid->toBase58();  // string(22) "1BKocMc5BnrVcuq2ti4Eqm"
$ulid->toRfc4122(); // string(36) "0171069d-593d-97d3-8b3e-23d06de5b308"

Puedes leer la documentación del componente Uid para saber más sobre todas las funcionalidades que incluye.

Por último, es importante recalcar que este componente no reemplaza a librerías especializadas como ramsey/uuid. Este componente solo incluye las funcionalidades esenciales. Así que si necesitas muchas más opciones, tendrás que seguir usando alguna de esas librerías. Además, este componente soporta varios tipos de UIDs y podríamos añadir más en el futuro (todo depende de si son suficientemente populares y tiene sentido su uso en los nichos a los que se enfocan las aplicaciones Symfony).

Esta funcionalidad fue contribuida por Grégoire Pineau y Nicolas Grekas en los pull requests #35940 y #36042.


Fuente: New in Symfony 5.1: Uid component

Comentarios

Publicada el

25 de marzo de 2020

Etiquetas

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.