rotrer / uuid
Clone of webpatser/uuid fixed for Laravel 5.2. Version 2.2.1
Requires
- php: >=5.3.0
Requires (Dev)
- fzaninotto/faker: 1.5.*
- phpunit/phpunit: 4.7.*
Suggests
- paragonie/random_compat: A random_bytes Php 5.x polyfill.
This package is not auto-updated.
Last update: 2024-11-15 07:45:29 UTC
README
Laravel package to generate and to validate a universally unique identifier (UUID) according to the RFC 4122 standard. Support for version 1, 3, 4 and 5 UUIDs are built-in.
Since Laravel 4.*
and 5.*
both rely on either OpenSSL
or Mcrypt
, the pseudo random byte generator now tries to use one of them. If both cannot be used (not a Laravel project?), the 'less random' mt_rand()
function is used.
Laravel 5.5?
Use laravel-uuid version 3.0
What's new in 2.*
Laravel Uuid is now fully PSR-2, just like Laravel 5.1. Not that much has changed except for UPPERCASING the constants used in Laravel Uuid. Meaning Uuid::nsDNS
is now Uuid::NS_DNS
etc. Should be an easy fix.
For the 1.* branch check the docs here
Installation
Add webpatser/laravel-uuid
to composer.json
.
"webpatser/laravel-uuid": "^2.0"
Run composer update
to pull down the latest version of Laravel UUID.
Or install it directly from the command line using
composer require "webpatser/laravel-uuid:2.*"
In Laravel 5.5 laravel-uuid will install via the new Package Discovery feature
For Laravel <= 5.4: edit config/app.php
and add the provider
and alias
'providers' => [ // ommited \Webpatser\Uuid\UuidServiceProvider::class, ] 'aliases' => [ // ommited 'Uuid' => Webpatser\Uuid\Uuid::class, ]
For Laravel 4: edit app/config/app.php
and add the alias
'aliases' => array( // ommited 'Uuid' => 'Webpatser\Uuid\Uuid', )
Basic Usage
To quickly generate a UUID just do
Uuid::generate()
This will generate a version 1 with a random ganerated MAC address.
Advanced Usage
UUID creation
Generate a version 1, time-based, UUID. You can set the optional node to the MAC address. If not supplied it will generate a random MAC address.
Uuid::generate(1,'00:11:22:33:44:55');
Generate a version 3, name-based using MD5 hashing, UUID
Uuid::generate(3,'test', Uuid::NS_DNS);
Generate a version 4, truly random, UUID
Uuid::generate(4);
Generate a version 5, name-based using SHA-1 hashing, UUID
Uuid::generate(5,'test', Uuid::NS_DNS);
Some magic features
To import a UUID
$uuid = Uuid::import('d3d29d70-1d25-11e3-8591-034165a3a613');
Extract the time for a time-based UUID (version 1)
$uuid = Uuid::generate(1); dd($uuid->time);
Extract the version of an UUID
$uuid = Uuid::generate(4); dd($uuid->version);
Validation
Just use like any other Laravel validator.
'uuid-field' => 'uuid'
Or create a validator from scratch. In the example an Uuid object in validated. You can also validate strings $uuid->string
, the URN $uuid->urn
or the binary value $uuid->bytes
$uuid = Uuid::generate(); $validator = Validator::make(['uuid' => $uuid], ['uuid' => 'uuid']); dd($validator->passes());
Notes
Full details on the UUID specification can be found here