Fields
in package
implements
FieldsInterface
Uses
NilTrait, SerializableFieldsTrait, VariantTrait, VersionTrait
RFC 4122 variant UUIDs are comprised of a set of named fields
Internally, this class represents the fields together as a 16-byte binary string.
Tags
Interfaces, Classes, Traits and Enums
- FieldsInterface
- RFC 4122 defines fields for a specific variant of UUID
Table of Contents
- $bytes : string
- __construct() : mixed
- __serialize() : array<string|int, mixed>
- __unserialize() : void
- getBytes() : string
- getClockSeq() : Hexadecimal
- Returns the full 16-bit clock sequence, with the variant bits (two most significant bits) masked out
- getClockSeqHiAndReserved() : Hexadecimal
- Returns the high field of the clock sequence multiplexed with the variant
- getClockSeqLow() : Hexadecimal
- Returns the low field of the clock sequence
- getNode() : Hexadecimal
- Returns the node field
- getTimeHiAndVersion() : Hexadecimal
- Returns the high field of the timestamp multiplexed with the version
- getTimeLow() : Hexadecimal
- Returns the low field of the timestamp
- getTimeMid() : Hexadecimal
- Returns the middle field of the timestamp
- getTimestamp() : Hexadecimal
- Returns the full 60-bit timestamp, without the version
- getVariant() : int
- Returns the variant identifier, according to RFC 4122, for the given bytes
- getVersion() : int|null
- Returns the version
- isNil() : bool
- Returns true if these fields represent a nil UUID
- serialize() : string
- Returns a string representation of object
- unserialize() : void
- Constructs the object from a serialized string representation
- isCorrectVariant() : bool
- isCorrectVersion() : bool
- Returns true if the version matches one of those defined by RFC 4122
Properties
$bytes
private
string
$bytes
Methods
__construct()
public
__construct(string $bytes) : mixed
Parameters
- $bytes : string
-
A 16-byte binary string representation of a UUID
Tags
Return values
mixed —__serialize()
public
__serialize() : array<string|int, mixed>
Return values
array<string|int, mixed> —__unserialize()
public
__unserialize(array<string|int, mixed> $data) : void
Parameters
- $data : array<string|int, mixed>
Return values
void —getBytes()
public
getBytes() : string
Return values
string —getClockSeq()
Returns the full 16-bit clock sequence, with the variant bits (two most significant bits) masked out
public
getClockSeq() : Hexadecimal
Return values
Hexadecimal —getClockSeqHiAndReserved()
Returns the high field of the clock sequence multiplexed with the variant
public
getClockSeqHiAndReserved() : Hexadecimal
Return values
Hexadecimal —getClockSeqLow()
Returns the low field of the clock sequence
public
getClockSeqLow() : Hexadecimal
Return values
Hexadecimal —getNode()
Returns the node field
public
getNode() : Hexadecimal
Return values
Hexadecimal —getTimeHiAndVersion()
Returns the high field of the timestamp multiplexed with the version
public
getTimeHiAndVersion() : Hexadecimal
Return values
Hexadecimal —getTimeLow()
Returns the low field of the timestamp
public
getTimeLow() : Hexadecimal
Return values
Hexadecimal —getTimeMid()
Returns the middle field of the timestamp
public
getTimeMid() : Hexadecimal
Return values
Hexadecimal —getTimestamp()
Returns the full 60-bit timestamp, without the version
public
getTimestamp() : Hexadecimal
For version 2 UUIDs, the time_low field is the local identifier and should not be returned as part of the time. For this reason, we set the bottom 32 bits of the timestamp to 0's. As a result, there is some loss of fidelity of the timestamp, for version 2 UUIDs. The timestamp can be off by a range of 0 to 429.4967295 seconds (or 7 minutes, 9 seconds, and 496730 microseconds).
For version 6 UUIDs, the timestamp order is reversed from the typical RFC 4122 order (the time bits are in the correct bit order, so that it is monotonically increasing). In returning the timestamp value, we put the bits in the order: time_low + time_mid + time_hi.
Return values
Hexadecimal —getVariant()
Returns the variant identifier, according to RFC 4122, for the given bytes
public
getVariant() : int
The following values may be returned:
-
0
-- Reserved, NCS backward compatibility. -
2
-- The variant specified in RFC 4122. -
6
-- Reserved, Microsoft Corporation backward compatibility. -
7
-- Reserved for future definition.
Tags
Return values
int —The variant identifier, according to RFC 4122
getVersion()
Returns the version
public
getVersion() : int|null
The version number describes how the UUID was generated and has the following meaning:
- Time-based UUID
- DCE security UUID
- Name-based UUID hashed with MD5
- Randomly generated UUID
- Name-based UUID hashed with SHA-1
This returns null
if the UUID is not an RFC 4122 variant, since version
is only meaningful for this variant.
Return values
int|null —isNil()
Returns true if these fields represent a nil UUID
public
abstract isNil() : bool
Return values
bool —serialize()
Returns a string representation of object
public
serialize() : string
Return values
string —unserialize()
Constructs the object from a serialized string representation
public
unserialize(string $serialized) : void
Parameters
- $serialized : string
-
The serialized string representation of the object
Tags
Return values
void —isCorrectVariant()
private
isCorrectVariant() : bool
Return values
bool —isCorrectVersion()
Returns true if the version matches one of those defined by RFC 4122
private
isCorrectVersion() : bool
Return values
bool —True if the UUID version is valid, false otherwise