Fala pessoal, tudo bom? Estamos aqui para mostrar para vocês mais uma biblioteca muito legal em PHP. Dessa vez iremos criar UUID (identificador único universal).
A biblioteca ramsey/uuid é perfeita para a criação de UUIDs, já que suporta 4 versões de UUID (1, 3, 4 e 5), sua implementação é muito simples, perfeita para você não perder tempo.
Vamos então a geração do UUID:
Primeiramente criamos uma pasta uuid e daremos um composer install.
composer require ramsey/uuid
Feito isso. iremos criar um arquivo uuid.php para verificar as formas de criar os UUIDs:
<?php
require 'vendor/autoload.php';
use Ramsey\Uuid\Uuid; //carregando a classe UUID
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException; //carregando as excessões
try {
//Gerando um objeto UUID de versão 1 (baseada em tempo)
$uuid1 = Uuid::uuid1();
echo $uuid1->toString() . "\n"; // i.e. e4eaaaf2-d142-11e1-b3e4-080027620cdd
//Gerando um objeto UUID de versão 3 (baseada em nome e usando hash MD5)
$uuid3 = Uuid::uuid3(Uuid::NAMESPACE_DNS, 'imasters.com');
echo $uuid3->toString() . "\n"; // i.e. 11a38b9a-b3da-360f-9353-a5a725514269
//Gerando um objeto UUID de versão 4 (aleatório)
$uuid4 = Uuid::uuid4();
echo $uuid4->toString() . "\n"; // i.e. 25769c6c-d34d-4bfe-ba98-e0ee856f3e7a
//Gerando um objeto UUID de versão 3 (baseada em nome e usando hash SHA1)
$uuid5 = Uuid::uuid5(Uuid::NAMESPACE_DNS, 'imasters.com');
echo $uuid5->toString() . "\n"; // i.e. c4a760a8-dbcf-5254-a0d9-6a4474bd1b62
} catch (UnsatisfiedDependencyException $e) {
// Caso ocorra algum erro:
echo 'Excessão: ' . $e->getMessage() . "\n";
}
E, vamos gerar algumas UUIDs, digitando o seguinte comando no terminal:
php uuid.php
Na geração das UUIDs, percebemos que as versões 3 e 5 geram hashs iguais, faz sentido, já que são baseadas em nome. Na versão 1, modifica-se a cadeia 1 e 4. E na versão 4 o hash realmente é totalmente aleatório.
Espero que esse artigo ajude você a criar UUIDs com facilidade. Um grande abraço e até a próxima.