Pacote Laravel para gerar e validar um identificador universalmente único (UUID) de acordo com o padrão RFC 4122. O suporte para UUIDs das versões 1, 3, 4 e 5 está integrado.
Laravel-uuid agora está pronto para Laravel 8. Ele tem os mesmos requisitos, o que significa PHP 7.3 ou PHP 8. A descoberta automática de pacotes Laravel está habilitada e agora você pode usar a validação UUID. Exemplos de validação estão abaixo e nos testes.
Para versões mais antigas do Laravel ou PHP, use versões mais antigas; Veja abaixo...
Laravel-uuid agora foi refatorado para Laravel 5.5. Ele tem os mesmos requisitos, o que significa PHP 7. A descoberta automática de pacotes Laravel está habilitada e agora você pode usar a validação UUID. Exemplos de validação estão abaixo e nos testes.
Laravel 5.0, 5.1, 5.2, 5.3 e 5.4? usar a versão 2
Laravel 4.*? usar a versão 1
No Laravel 5.5, o laravel-uuid será instalado através do novo recurso de descoberta de pacotes, então você só precisa adicionar o pacote ao seu arquivo compositor.json
compositor requer "webpatser/laravel-uuid:^3.0"
após a instalação você deverá ver
Pacote descoberto: webpatser/laravel-uuid
e você está pronto para ir
Para gerar rapidamente um UUID basta fazer
Uuid::generate()
Isso irá gerar um object
Uuid versão 1 com um endereço MAC gerado aleatoriamente.
Para ecoar o UUID gerado, converta-o em uma string
(string)Uuid::generate()
ou
Uuid::generate()->string
Gere um UUID versão 1, baseado em tempo. Você pode definir o nó opcional para o endereço MAC. Se não for fornecido, gerará um endereço MAC aleatório.
Uuid::generate(1,'00:11:22:33:44:55');
Gere uma versão 3, baseada em nome usando hashing MD5, UUID
Uuid::generate(3,'teste', Uuid::NS_DNS);
Gere um UUID da versão 4, verdadeiramente aleatório
Uuid::generate(4);
Gere uma versão 5, baseada em nome usando hash SHA-1, UUID
Uuid::generate(5,'teste', Uuid::NS_DNS);
Para importar um UUID
$uuid = Uuid::import('d3d29d70-1d25-11e3-8591-034165a3a613');
Extraia a hora para um UUID baseado em tempo (versão 1)
$uuid = Uuid::generate(1);dd($uuid->time);
Extraia a versão de um UUID
$uuid = Uuid::generate(4);dd($uuid->versão);
Se você deseja que um UUID seja gerado magicamente em seus modelos do Laravel, basta adicionar este método de inicialização ao seu modelo.
/** * Configurar ganchos de eventos do modelo */public static function boot() {parent::boot();self::creating(function ($model) {$model->uuid = (string) Uuid::generate(4); }); }
Isso irá gerar um UUID versão 4 ao criar um novo registro.
Se quiser usar o UUID em URLs em vez da chave primária, você pode adicionar isso ao seu modelo (onde 'uuid' é o nome da coluna para armazenar o UUID)
/** * Obtenha a chave de rota para o modelo. * * @return string */função pública getRouteKeyName() {retornar 'uuid'; }
Ao injetar o modelo nos métodos do controlador de recursos, você obtém o registro correto
edição de função pública (modelo $model) { return view('someview.edit')->with(['model' => $model, ]); }
Basta usar como qualquer outro validador Laravel.
'uuid-field' => 'uuid'
Ou crie um validador do zero. No exemplo, um objeto Uuid é validado. Você também pode validar strings $uuid->string
, o URN $uuid->urn
ou o valor binário $uuid->bytes
$uuid = Uuid::generate();$validator = Validator::make(['uuid' => $uuid], ['uuid' => 'uuid']);dd($validator->passes()) ;
Detalhes completos sobre a especificação UUID podem ser encontrados em http://tools.ietf.org/html/rfc4122.