Add v2() convenience function for version 2 UUIDs

This commit is contained in:
Ben Ramsey
2020-01-18 18:16:29 -06:00
parent 59dc5bf06d
commit 3c975dd194
2 changed files with 48 additions and 0 deletions
+28
View File
@@ -15,6 +15,9 @@ declare(strict_types=1);
namespace Ramsey\Uuid;
use Ramsey\Uuid\Type\Hexadecimal;
use Ramsey\Uuid\Type\IntegerValue;
/**
* Returns a version 1 (time-based) UUID from a host ID, sequence number,
* and the current time
@@ -30,6 +33,31 @@ function v1($node = null, ?int $clockSeq = null): string
return Uuid::uuid1($node, $clockSeq)->toString();
}
/**
* Returns a version 2 (DCE Security) UUID from a local domain, local
* identifier, host ID, clock sequence, and the current time
*
* @param int $localDomain The local domain to use when generating bytes,
* according to DCE Security
* @param IntegerValue|null $localIdentifier The local identifier for the
* given domain; this may be a UID or GID on POSIX systems, if the local
* domain is person or group, or it may be a site-defined identifier
* if the local domain is org
* @param Hexadecimal|null $node A 48-bit number representing the hardware
* address
* @param int|null $clockSeq A 14-bit number used to help avoid duplicates
* that could arise when the clock is set backwards in time or if the
* node ID changes
*/
function v2(
int $localDomain,
?IntegerValue $localIdentifier = null,
?Hexadecimal $node = null,
?int $clockSeq = null
): string {
return Uuid::uuid2($localDomain, $localIdentifier, $node, $clockSeq)->toString();
}
/**
* Returns a version 3 (name-based) UUID based on the MD5 hash of a
* namespace ID and a name