Paquete Laravel para generar y validar un identificador único universal (UUID) según el estándar RFC 4122. La compatibilidad con los UUID de las versiones 1, 3, 4 y 5 está integrada.
Laravel-uuid ahora está listo para Laravel 8. Tiene los mismos requisitos, es decir, PHP 7.3 o PHP 8. El descubrimiento automático de paquetes Laravel está habilitado y ahora puede usar la validación UUID. Los ejemplos de validación se encuentran a continuación y en las pruebas.
Para versiones anteriores de Laravel o PHP, utilice versiones anteriores; vea abajo...
Laravel-uuid ahora está refactorizado para Laravel 5.5. Tiene los mismos requisitos, por lo que significa PHP 7. El descubrimiento automático de paquetes Laravel está habilitado y ahora puede usar la validación UUID. Los ejemplos de validación se encuentran a continuación y en las pruebas.
¿Laravel 5.0, 5.1, 5.2, 5.3 y 5.4? usar la versión 2
¿Laravel 4.*? usar la versión 1
En Laravel 5.5, laravel-uuid se instalará a través de la nueva función de descubrimiento de paquetes, por lo que solo necesitará agregar el paquete a su archivo compositor.json.
El compositor requiere "webpatser/laravel-uuid:^3.0"
después de la instalación deberías ver
Paquete descubierto: webpatser/laravel-uuid
y estás listo para ir
Para generar rápidamente un UUID simplemente haga
Uuid::generar()
Esto generará un object
Uuid versión 1 con una dirección MAC generada aleatoriamente.
Para hacer eco del UUID generado, conviértalo en una cadena
(cadena) Uuid::generar()
o
Uuid::generar()->cadena
Genere un UUID versión 1, basado en tiempo. Puede configurar el nodo opcional en la dirección MAC. Si no se proporciona, generará una dirección MAC aleatoria.
Uuid::generar(1,'00:11:22:33:44:55');
Genere una versión 3, basada en nombres usando hash MD5, UUID
Uuid::generar(3,'prueba', Uuid::NS_DNS);
Generar un UUID versión 4, verdaderamente aleatorio
Uuid::generar(4);
Genere una versión 5, basada en nombres usando hash SHA-1, UUID
Uuid::generar(5,'prueba', Uuid::NS_DNS);
Para importar un UUID
$uuid = Uuid::import('d3d29d70-1d25-11e3-8591-034165a3a613');
Extraiga la hora para un UUID basado en la hora (versión 1)
$uuid = Uuid::generate(1);dd($uuid->hora);
Extraer la versión de un UUID
$uuid = Uuid::generate(4);dd($uuid->versión);
Si desea que se genere mágicamente un UUID en sus modelos Laravel, simplemente agregue este método de arranque a su modelo.
/** * Configurar ganchos de eventos del modelo */función estática pública boot() {parent::boot();self::creating(function ($model) {$model->uuid = (cadena) Uuid::generate(4); }); }
Esto generará un UUID versión 4 al crear un nuevo registro.
Si desea utilizar el UUID en las URL en lugar de la clave principal, puede agregarlo a su modelo (donde 'uuid' es el nombre de la columna para almacenar el UUID)
/** * Obtener la clave de ruta para el modelo. * * @return string */función pública getRouteKeyName() {regresar 'uuid'; }
Cuando inyecta el modelo en los métodos de su controlador de recursos, obtiene el registro correcto
edición de función pública (Modelo $modelo) { return view('someview.edit')->with(['model' => $modelo, ]); }
Úselo como cualquier otro validador de Laravel.
'uuid-field' => 'uuid'
O crea un validador desde cero. En el ejemplo, se valida un objeto Uuid. También puedes validar cadenas $uuid->string
, la URN $uuid->urn
o el valor binario $uuid->bytes
$uuid = Uuid::generate();$validator = Validador::make(['uuid' => $uuid], ['uuid' => 'uuid']);dd($validator->passes()) ;
Los detalles completos sobre la especificación UUID se pueden encontrar en http://tools.ietf.org/html/rfc4122.