pwm/uuid-v4 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

pwm/uuid-v4

Composer 安装命令:

composer require pwm/uuid-v4

包简介

Implementation of the RFC 4122 UUID version 4 (variant 1) data type

关键字:

README 文档

README

Build Status codecov Maintainability Test Coverage License: MIT

Implementation of the RFC 4122 UUID version 4 (variant 1) data type. UUID stands for Universally Unique Identifier.

Table of Contents

Why

We already have comprehensive UUID libraries in PHP, eg. ramsey/uuid.

My goal was to create a minimalistic implementation of the version 4 UUID spec. UUIDv4-s are randomly generated which makes implementation trivial as it requires nothing other than a random external seed value.

The decision to only implement version 4 resulted in a tiny functional library capturing the UUIDv4 data type that can be understood in minutes. Creation happens using a pure function that takes the random seed and is trivially testable.

Requirements

PHP 7.1+

Installation

$ composer require pwm/uuid-v4

Usage

Creating a UUIDv4 data type from a valid string:

$uuidV4String = '30313233-3435-4637-b839-616263646566';

$uuidV4 = new UuidV4($uuidV4String); // the data type

assert($uuidV4 instanceof UuidV4);
assert($uuidV4String === (string)$uuidV4);

Creating a random UUIDv4 from a 16 byte random seed:

$uuidV4 = UuidV4::createFrom(random_bytes(16));

assert($uuidV4 instanceof UuidV4);

Creating from the same seed produces the same UUIDv4:

$seed = random_bytes(16);

assert((string)UuidV4::createFrom($seed) === (string)UuidV4::createFrom($seed));

How it works

UUID version 4 is defined in RFC 4122 as a sequence of 128 bits, where 6 bits are fixed (4 for the version, 2 for the variant) leaving 122 randomly generated bits for entropy.

UuidV4 is a simple data type that can only be created from valid UUIDv4 strings. It comes with a createFrom() function that facilitates the creation of random UUIDv4-s from 16 byte random seeds. It is to be used with PHP's random_bytes() function.

Tests

$ vendor/bin/phpunit
$ composer phpcs
$ composer phpstan
$ composer infection

Changelog

Click here

Licence

MIT

统计信息

  • 总下载量: 2.22k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 6
  • 点击次数: 5
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 6
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-06-11

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固