Package Laravel pour générer et valider un identifiant universellement unique (UUID) selon la norme RFC 4122. La prise en charge des UUID des versions 1, 3, 4 et 5 est intégrée.
Laravel-uuid est maintenant prêt pour Laravel 8. Il a les mêmes exigences, ce qui signifie PHP 7.3 ou PHP 8. La découverte automatique du package Laravel est activée et vous pouvez désormais utiliser la validation UUID. Des exemples de validation sont ci-dessous et dans les tests.
Pour les anciennes versions de Laravel ou PHP, utilisez les anciennes versions ; voir ci-dessous...
Laravel-uuid est désormais refactorisé pour Laravel 5.5. Il a les mêmes exigences, ce qui signifie PHP 7. La découverte automatique du package Laravel est activée et vous pouvez désormais utiliser la validation UUID. Des exemples de validation sont ci-dessous et dans les tests.
Laravel 5.0, 5.1, 5.2, 5.3 et 5.4 ? utiliser la version 2
Laravel 4.*? utiliser la version 1
Dans Laravel 5.5, laravel-uuid s'installera via la nouvelle fonctionnalité de découverte de packages, il vous suffira donc d'ajouter le package à votre fichier composer.json.
le compositeur nécessite "webpatser/laravel-uuid:^3.0"
après l'installation, vous devriez voir
Package découvert : webpatser/laravel-uuid
et tu es prêt à partir
Pour générer rapidement un UUID, faites simplement
Uuid :: générer ()
Cela générera un object
Uuid version 1 avec une adresse MAC générée aléatoirement.
Pour faire écho à l'UUID généré, convertissez-le en chaîne
(chaîne) Uuid::generate()
ou
Uuid::generate()->string
Générez un UUID version 1, basé sur le temps. Vous pouvez définir le nœud facultatif sur l'adresse MAC. S'il n'est pas fourni, il générera une adresse MAC aléatoire.
Uuid::generate(1,'00:11:22:33:44:55');
Générer une version 3, basée sur le nom en utilisant le hachage MD5, UUID
Uuid::generate(3,'test', Uuid::NS_DNS);
Générer un UUID version 4, véritablement aléatoire
Uuid::générer(4);
Générer une version 5, basée sur le nom en utilisant le hachage SHA-1, UUID
Uuid::generate(5,'test', Uuid::NS_DNS);
Pour importer un UUID
$uuid = Uuid::import('d3d29d70-1d25-11e3-8591-034165a3a613');
Extraire l'heure pour un UUID basé sur le temps (version 1)
$uuid = Uuid::generate(1);dd($uuid->time);
Extraire la version d'un UUID
$uuid = Uuid::generate(4);dd($uuid->version);
Si vous souhaitez qu'un UUID soit généré comme par magie dans vos modèles Laravel, ajoutez simplement cette méthode de démarrage à votre modèle.
/** * Configurer les hooks d'événement du modèle */public static function boot() {parent::boot();self::creating(function ($model) {$model->uuid = (string) Uuid::generate(4); }); }
Cela générera un UUID version 4 lors de la création d’un nouvel enregistrement.
Si vous souhaitez utiliser l'UUID dans les URL au lieu de la clé primaire, vous pouvez l'ajouter à votre modèle (où « uuid » est le nom de la colonne pour stocker l'UUID).
/** * Récupère la clé de route du modèle. * * @chaîne de retour */fonction publique getRouteKeyName() {retourne 'uuid'; }
Lorsque vous injectez le modèle sur vos méthodes de contrôleur de ressources, vous obtenez l'enregistrement correct
édition de fonction publique (Modèle $model) { return view('someview.edit')->with(['model' => $model, ]); }
Utilisez simplement comme n’importe quel autre validateur Laravel.
'uuid-field' => 'uuid'
Ou créez un validateur à partir de zéro. Dans l'exemple, un objet Uuid est validé. Vous pouvez également valider les chaînes $uuid->string
, l'URN $uuid->urn
ou la valeur binaire $uuid->bytes
$uuid = Uuid::generate();$validator = Validator::make(['uuid' => $uuid], ['uuid' => 'uuid']);dd($validator->passes()) ;
Tous les détails sur la spécification UUID sont disponibles sur http://tools.ietf.org/html/rfc4122.