Aggiornato Composer
This commit is contained in:
85
vendor/ramsey/uuid/src/Rfc4122/Fields.php
vendored
85
vendor/ramsey/uuid/src/Rfc4122/Fields.php
vendored
@@ -40,16 +40,12 @@ use const STR_PAD_LEFT;
|
||||
*/
|
||||
final class Fields implements FieldsInterface
|
||||
{
|
||||
use MaxTrait;
|
||||
use NilTrait;
|
||||
use SerializableFieldsTrait;
|
||||
use VariantTrait;
|
||||
use VersionTrait;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $bytes;
|
||||
|
||||
/**
|
||||
* @param string $bytes A 16-byte binary string representation of a UUID
|
||||
*
|
||||
@@ -57,17 +53,15 @@ final class Fields implements FieldsInterface
|
||||
* @throws InvalidArgumentException if the byte string does not represent an RFC 4122 UUID
|
||||
* @throws InvalidArgumentException if the byte string does not contain a valid version
|
||||
*/
|
||||
public function __construct(string $bytes)
|
||||
public function __construct(private string $bytes)
|
||||
{
|
||||
if (strlen($bytes) !== 16) {
|
||||
if (strlen($this->bytes) !== 16) {
|
||||
throw new InvalidArgumentException(
|
||||
'The byte string must be 16 bytes long; '
|
||||
. 'received ' . strlen($bytes) . ' bytes'
|
||||
. 'received ' . strlen($this->bytes) . ' bytes'
|
||||
);
|
||||
}
|
||||
|
||||
$this->bytes = $bytes;
|
||||
|
||||
if (!$this->isCorrectVariant()) {
|
||||
throw new InvalidArgumentException(
|
||||
'The byte string received does not conform to the RFC 4122 variant'
|
||||
@@ -88,7 +82,13 @@ final class Fields implements FieldsInterface
|
||||
|
||||
public function getClockSeq(): Hexadecimal
|
||||
{
|
||||
$clockSeq = hexdec(bin2hex(substr($this->bytes, 8, 2))) & 0x3fff;
|
||||
if ($this->isMax()) {
|
||||
$clockSeq = 0xffff;
|
||||
} elseif ($this->isNil()) {
|
||||
$clockSeq = 0x0000;
|
||||
} else {
|
||||
$clockSeq = hexdec(bin2hex(substr($this->bytes, 8, 2))) & 0x3fff;
|
||||
}
|
||||
|
||||
return new Hexadecimal(str_pad(dechex($clockSeq), 4, '0', STR_PAD_LEFT));
|
||||
}
|
||||
@@ -140,52 +140,53 @@ final class Fields implements FieldsInterface
|
||||
*/
|
||||
public function getTimestamp(): Hexadecimal
|
||||
{
|
||||
switch ($this->getVersion()) {
|
||||
case Uuid::UUID_TYPE_DCE_SECURITY:
|
||||
$timestamp = sprintf(
|
||||
'%03x%04s%08s',
|
||||
hexdec($this->getTimeHiAndVersion()->toString()) & 0x0fff,
|
||||
$this->getTimeMid()->toString(),
|
||||
''
|
||||
);
|
||||
|
||||
break;
|
||||
case Uuid::UUID_TYPE_PEABODY:
|
||||
$timestamp = sprintf(
|
||||
'%08s%04s%03x',
|
||||
$this->getTimeLow()->toString(),
|
||||
$this->getTimeMid()->toString(),
|
||||
hexdec($this->getTimeHiAndVersion()->toString()) & 0x0fff
|
||||
);
|
||||
|
||||
break;
|
||||
default:
|
||||
$timestamp = sprintf(
|
||||
'%03x%04s%08s',
|
||||
hexdec($this->getTimeHiAndVersion()->toString()) & 0x0fff,
|
||||
$this->getTimeMid()->toString(),
|
||||
$this->getTimeLow()->toString()
|
||||
);
|
||||
}
|
||||
$timestamp = match ($this->getVersion()) {
|
||||
Uuid::UUID_TYPE_DCE_SECURITY => sprintf(
|
||||
'%03x%04s%08s',
|
||||
hexdec($this->getTimeHiAndVersion()->toString()) & 0x0fff,
|
||||
$this->getTimeMid()->toString(),
|
||||
''
|
||||
),
|
||||
Uuid::UUID_TYPE_REORDERED_TIME => sprintf(
|
||||
'%08s%04s%03x',
|
||||
$this->getTimeLow()->toString(),
|
||||
$this->getTimeMid()->toString(),
|
||||
hexdec($this->getTimeHiAndVersion()->toString()) & 0x0fff
|
||||
),
|
||||
// The Unix timestamp in version 7 UUIDs is a 48-bit number,
|
||||
// but for consistency, we will return a 60-bit number, padded
|
||||
// to the left with zeros.
|
||||
Uuid::UUID_TYPE_UNIX_TIME => sprintf(
|
||||
'%011s%04s',
|
||||
$this->getTimeLow()->toString(),
|
||||
$this->getTimeMid()->toString(),
|
||||
),
|
||||
default => sprintf(
|
||||
'%03x%04s%08s',
|
||||
hexdec($this->getTimeHiAndVersion()->toString()) & 0x0fff,
|
||||
$this->getTimeMid()->toString(),
|
||||
$this->getTimeLow()->toString()
|
||||
),
|
||||
};
|
||||
|
||||
return new Hexadecimal($timestamp);
|
||||
}
|
||||
|
||||
public function getVersion(): ?int
|
||||
{
|
||||
if ($this->isNil()) {
|
||||
if ($this->isNil() || $this->isMax()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/** @var array $parts */
|
||||
/** @var int[] $parts */
|
||||
$parts = unpack('n*', $this->bytes);
|
||||
|
||||
return (int) $parts[4] >> 12;
|
||||
return $parts[4] >> 12;
|
||||
}
|
||||
|
||||
private function isCorrectVariant(): bool
|
||||
{
|
||||
if ($this->isNil()) {
|
||||
if ($this->isNil() || $this->isMax()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -103,11 +103,13 @@ interface FieldsInterface extends BaseFieldsInterface
|
||||
* The version number describes how the UUID was generated and has the
|
||||
* following meaning:
|
||||
*
|
||||
* 1. Time-based UUID
|
||||
* 1. Gregorian time UUID
|
||||
* 2. DCE security UUID
|
||||
* 3. Name-based UUID hashed with MD5
|
||||
* 4. Randomly generated UUID
|
||||
* 5. Name-based UUID hashed with SHA-1
|
||||
* 6. Reordered time UUID
|
||||
* 7. Unix Epoch time UUID
|
||||
*
|
||||
* This returns `null` if the UUID is not an RFC 4122 variant, since version
|
||||
* is only meaningful for this variant.
|
||||
|
||||
49
vendor/ramsey/uuid/src/Rfc4122/UuidBuilder.php
vendored
49
vendor/ramsey/uuid/src/Rfc4122/UuidBuilder.php
vendored
@@ -17,11 +17,13 @@ namespace Ramsey\Uuid\Rfc4122;
|
||||
use Ramsey\Uuid\Builder\UuidBuilderInterface;
|
||||
use Ramsey\Uuid\Codec\CodecInterface;
|
||||
use Ramsey\Uuid\Converter\NumberConverterInterface;
|
||||
use Ramsey\Uuid\Converter\Time\UnixTimeConverter;
|
||||
use Ramsey\Uuid\Converter\TimeConverterInterface;
|
||||
use Ramsey\Uuid\Exception\UnableToBuildUuidException;
|
||||
use Ramsey\Uuid\Exception\UnsupportedOperationException;
|
||||
use Ramsey\Uuid\Nonstandard\UuidV6;
|
||||
use Ramsey\Uuid\Math\BrickMathCalculator;
|
||||
use Ramsey\Uuid\Rfc4122\UuidInterface as Rfc4122UuidInterface;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Ramsey\Uuid\UuidInterface;
|
||||
use Throwable;
|
||||
|
||||
@@ -32,15 +34,7 @@ use Throwable;
|
||||
*/
|
||||
class UuidBuilder implements UuidBuilderInterface
|
||||
{
|
||||
/**
|
||||
* @var NumberConverterInterface
|
||||
*/
|
||||
private $numberConverter;
|
||||
|
||||
/**
|
||||
* @var TimeConverterInterface
|
||||
*/
|
||||
private $timeConverter;
|
||||
private TimeConverterInterface $unixTimeConverter;
|
||||
|
||||
/**
|
||||
* Constructs the DefaultUuidBuilder
|
||||
@@ -48,14 +42,18 @@ class UuidBuilder implements UuidBuilderInterface
|
||||
* @param NumberConverterInterface $numberConverter The number converter to
|
||||
* use when constructing the Uuid
|
||||
* @param TimeConverterInterface $timeConverter The time converter to use
|
||||
* for converting timestamps extracted from a UUID to Unix timestamps
|
||||
* for converting Gregorian time extracted from version 1, 2, and 6
|
||||
* UUIDs to Unix timestamps
|
||||
* @param TimeConverterInterface|null $unixTimeConverter The time converter
|
||||
* to use for converter Unix Epoch time extracted from version 7 UUIDs
|
||||
* to Unix timestamps
|
||||
*/
|
||||
public function __construct(
|
||||
NumberConverterInterface $numberConverter,
|
||||
TimeConverterInterface $timeConverter
|
||||
private NumberConverterInterface $numberConverter,
|
||||
private TimeConverterInterface $timeConverter,
|
||||
?TimeConverterInterface $unixTimeConverter = null
|
||||
) {
|
||||
$this->numberConverter = $numberConverter;
|
||||
$this->timeConverter = $timeConverter;
|
||||
$this->unixTimeConverter = $unixTimeConverter ?? new UnixTimeConverter(new BrickMathCalculator());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -71,25 +69,34 @@ class UuidBuilder implements UuidBuilderInterface
|
||||
public function build(CodecInterface $codec, string $bytes): UuidInterface
|
||||
{
|
||||
try {
|
||||
/** @var Fields $fields */
|
||||
$fields = $this->buildFields($bytes);
|
||||
|
||||
if ($fields->isNil()) {
|
||||
return new NilUuid($fields, $this->numberConverter, $codec, $this->timeConverter);
|
||||
}
|
||||
|
||||
if ($fields->isMax()) {
|
||||
return new MaxUuid($fields, $this->numberConverter, $codec, $this->timeConverter);
|
||||
}
|
||||
|
||||
switch ($fields->getVersion()) {
|
||||
case 1:
|
||||
case Uuid::UUID_TYPE_TIME:
|
||||
return new UuidV1($fields, $this->numberConverter, $codec, $this->timeConverter);
|
||||
case 2:
|
||||
case Uuid::UUID_TYPE_DCE_SECURITY:
|
||||
return new UuidV2($fields, $this->numberConverter, $codec, $this->timeConverter);
|
||||
case 3:
|
||||
case Uuid::UUID_TYPE_HASH_MD5:
|
||||
return new UuidV3($fields, $this->numberConverter, $codec, $this->timeConverter);
|
||||
case 4:
|
||||
case Uuid::UUID_TYPE_RANDOM:
|
||||
return new UuidV4($fields, $this->numberConverter, $codec, $this->timeConverter);
|
||||
case 5:
|
||||
case Uuid::UUID_TYPE_HASH_SHA1:
|
||||
return new UuidV5($fields, $this->numberConverter, $codec, $this->timeConverter);
|
||||
case 6:
|
||||
case Uuid::UUID_TYPE_REORDERED_TIME:
|
||||
return new UuidV6($fields, $this->numberConverter, $codec, $this->timeConverter);
|
||||
case Uuid::UUID_TYPE_UNIX_TIME:
|
||||
return new UuidV7($fields, $this->numberConverter, $codec, $this->unixTimeConverter);
|
||||
case Uuid::UUID_TYPE_CUSTOM:
|
||||
return new UuidV8($fields, $this->numberConverter, $codec, $this->timeConverter);
|
||||
}
|
||||
|
||||
throw new UnsupportedOperationException(
|
||||
|
||||
@@ -26,11 +26,4 @@ use Ramsey\Uuid\UuidInterface as BaseUuidInterface;
|
||||
*/
|
||||
interface UuidInterface extends BaseUuidInterface
|
||||
{
|
||||
/**
|
||||
* Returns the string standard representation of the UUID as a URN
|
||||
*
|
||||
* @link http://en.wikipedia.org/wiki/Uniform_Resource_Name Uniform Resource Name
|
||||
* @link https://tools.ietf.org/html/rfc4122#section-3 RFC 4122, § 3: Namespace Registration Template
|
||||
*/
|
||||
public function getUrn(): string;
|
||||
}
|
||||
|
||||
40
vendor/ramsey/uuid/src/Rfc4122/UuidV1.php
vendored
40
vendor/ramsey/uuid/src/Rfc4122/UuidV1.php
vendored
@@ -14,31 +14,25 @@ declare(strict_types=1);
|
||||
|
||||
namespace Ramsey\Uuid\Rfc4122;
|
||||
|
||||
use DateTimeImmutable;
|
||||
use DateTimeInterface;
|
||||
use Ramsey\Uuid\Codec\CodecInterface;
|
||||
use Ramsey\Uuid\Converter\NumberConverterInterface;
|
||||
use Ramsey\Uuid\Converter\TimeConverterInterface;
|
||||
use Ramsey\Uuid\Exception\DateTimeException;
|
||||
use Ramsey\Uuid\Exception\InvalidArgumentException;
|
||||
use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Throwable;
|
||||
|
||||
use function str_pad;
|
||||
|
||||
use const STR_PAD_LEFT;
|
||||
|
||||
/**
|
||||
* Time-based, or version 1, UUIDs include timestamp, clock sequence, and node
|
||||
* Gregorian time, or version 1, UUIDs include timestamp, clock sequence, and node
|
||||
* values that are combined into a 128-bit unsigned integer
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class UuidV1 extends Uuid implements UuidInterface
|
||||
{
|
||||
use TimeTrait;
|
||||
|
||||
/**
|
||||
* Creates a version 1 (time-based) UUID
|
||||
* Creates a version 1 (Gregorian time) UUID
|
||||
*
|
||||
* @param Rfc4122FieldsInterface $fields The fields from which to construct a UUID
|
||||
* @param NumberConverterInterface $numberConverter The number converter to use
|
||||
@@ -63,30 +57,4 @@ final class UuidV1 extends Uuid implements UuidInterface
|
||||
|
||||
parent::__construct($fields, $numberConverter, $codec, $timeConverter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a DateTimeInterface object representing the timestamp associated
|
||||
* with the UUID
|
||||
*
|
||||
* The timestamp value is only meaningful in a time-based UUID, which
|
||||
* has version type 1.
|
||||
*
|
||||
* @return DateTimeImmutable A PHP DateTimeImmutable instance representing
|
||||
* the timestamp of a version 1 UUID
|
||||
*/
|
||||
public function getDateTime(): DateTimeInterface
|
||||
{
|
||||
$time = $this->timeConverter->convertTime($this->fields->getTimestamp());
|
||||
|
||||
try {
|
||||
return new DateTimeImmutable(
|
||||
'@'
|
||||
. $time->getSeconds()->toString()
|
||||
. '.'
|
||||
. str_pad($time->getMicroseconds()->toString(), 6, '0', STR_PAD_LEFT)
|
||||
);
|
||||
} catch (Throwable $e) {
|
||||
throw new DateTimeException($e->getMessage(), (int) $e->getCode(), $e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
56
vendor/ramsey/uuid/src/Rfc4122/UuidV2.php
vendored
56
vendor/ramsey/uuid/src/Rfc4122/UuidV2.php
vendored
@@ -14,28 +14,33 @@ declare(strict_types=1);
|
||||
|
||||
namespace Ramsey\Uuid\Rfc4122;
|
||||
|
||||
use DateTimeImmutable;
|
||||
use DateTimeInterface;
|
||||
use Ramsey\Uuid\Codec\CodecInterface;
|
||||
use Ramsey\Uuid\Converter\NumberConverterInterface;
|
||||
use Ramsey\Uuid\Converter\TimeConverterInterface;
|
||||
use Ramsey\Uuid\Exception\DateTimeException;
|
||||
use Ramsey\Uuid\Exception\InvalidArgumentException;
|
||||
use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface;
|
||||
use Ramsey\Uuid\Type\Integer as IntegerObject;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Throwable;
|
||||
|
||||
use function hexdec;
|
||||
use function str_pad;
|
||||
|
||||
use const STR_PAD_LEFT;
|
||||
|
||||
/**
|
||||
* DCE Security version, or version 2, UUIDs include local domain identifier,
|
||||
* local ID for the specified domain, and node values that are combined into a
|
||||
* 128-bit unsigned integer
|
||||
*
|
||||
* It is important to note that a version 2 UUID suffers from some loss of
|
||||
* fidelity of the timestamp, due to replacing the time_low field with the
|
||||
* local identifier. When constructing the timestamp value for date
|
||||
* purposes, we replace the local identifier bits with zeros. As a result,
|
||||
* the timestamp can be off by a range of 0 to 429.4967295 seconds (or 7
|
||||
* minutes, 9 seconds, and 496730 microseconds).
|
||||
*
|
||||
* Astute observers might note this value directly corresponds to 2^32 - 1,
|
||||
* or 0xffffffff. The local identifier is 32-bits, and we have set each of
|
||||
* these bits to 0, so the maximum range of timestamp drift is 0x00000000
|
||||
* to 0xffffffff (counted in 100-nanosecond intervals).
|
||||
*
|
||||
* @link https://publications.opengroup.org/c311 DCE 1.1: Authentication and Security Services
|
||||
* @link https://publications.opengroup.org/c706 DCE 1.1: Remote Procedure Call
|
||||
* @link https://pubs.opengroup.org/onlinepubs/9696989899/chap5.htm#tagcjh_08_02_01_01 DCE 1.1: Auth & Sec, §5.2.1.1
|
||||
@@ -47,6 +52,8 @@ use const STR_PAD_LEFT;
|
||||
*/
|
||||
final class UuidV2 extends Uuid implements UuidInterface
|
||||
{
|
||||
use TimeTrait;
|
||||
|
||||
/**
|
||||
* Creates a version 2 (DCE Security) UUID
|
||||
*
|
||||
@@ -74,41 +81,6 @@ final class UuidV2 extends Uuid implements UuidInterface
|
||||
parent::__construct($fields, $numberConverter, $codec, $timeConverter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a DateTimeInterface object representing the timestamp associated
|
||||
* with the UUID
|
||||
*
|
||||
* It is important to note that a version 2 UUID suffers from some loss of
|
||||
* fidelity of the timestamp, due to replacing the time_low field with the
|
||||
* local identifier. When constructing the timestamp value for date
|
||||
* purposes, we replace the local identifier bits with zeros. As a result,
|
||||
* the timestamp can be off by a range of 0 to 429.4967295 seconds (or 7
|
||||
* minutes, 9 seconds, and 496730 microseconds).
|
||||
*
|
||||
* Astute observers might note this value directly corresponds to 2^32 - 1,
|
||||
* or 0xffffffff. The local identifier is 32-bits, and we have set each of
|
||||
* these bits to 0, so the maximum range of timestamp drift is 0x00000000
|
||||
* to 0xffffffff (counted in 100-nanosecond intervals).
|
||||
*
|
||||
* @return DateTimeImmutable A PHP DateTimeImmutable instance representing
|
||||
* the timestamp of a version 2 UUID
|
||||
*/
|
||||
public function getDateTime(): DateTimeInterface
|
||||
{
|
||||
$time = $this->timeConverter->convertTime($this->fields->getTimestamp());
|
||||
|
||||
try {
|
||||
return new DateTimeImmutable(
|
||||
'@'
|
||||
. $time->getSeconds()->toString()
|
||||
. '.'
|
||||
. str_pad($time->getMicroseconds()->toString(), 6, '0', STR_PAD_LEFT)
|
||||
);
|
||||
} catch (Throwable $e) {
|
||||
throw new DateTimeException($e->getMessage(), (int) $e->getCode(), $e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the local domain used to create this version 2 UUID
|
||||
*/
|
||||
|
||||
5
vendor/ramsey/uuid/src/Rfc4122/Validator.php
vendored
5
vendor/ramsey/uuid/src/Rfc4122/Validator.php
vendored
@@ -28,7 +28,7 @@ use function str_replace;
|
||||
final class Validator implements ValidatorInterface
|
||||
{
|
||||
private const VALID_PATTERN = '\A[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-'
|
||||
. '[1-5]{1}[0-9A-Fa-f]{3}-[ABab89]{1}[0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}\z';
|
||||
. '[1-8][0-9A-Fa-f]{3}-[ABab89][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}\z';
|
||||
|
||||
/**
|
||||
* @psalm-return non-empty-string
|
||||
@@ -43,7 +43,8 @@ final class Validator implements ValidatorInterface
|
||||
public function validate(string $uuid): bool
|
||||
{
|
||||
$uuid = str_replace(['urn:', 'uuid:', 'URN:', 'UUID:', '{', '}'], '', $uuid);
|
||||
$uuid = strtolower($uuid);
|
||||
|
||||
return $uuid === Uuid::NIL || preg_match('/' . self::VALID_PATTERN . '/Dms', $uuid);
|
||||
return $uuid === Uuid::NIL || $uuid === Uuid::MAX || preg_match('/' . self::VALID_PATTERN . '/Dms', $uuid);
|
||||
}
|
||||
}
|
||||
|
||||
24
vendor/ramsey/uuid/src/Rfc4122/VariantTrait.php
vendored
24
vendor/ramsey/uuid/src/Rfc4122/VariantTrait.php
vendored
@@ -19,8 +19,8 @@ use Ramsey\Uuid\Uuid;
|
||||
|
||||
use function decbin;
|
||||
use function str_pad;
|
||||
use function str_starts_with;
|
||||
use function strlen;
|
||||
use function strpos;
|
||||
use function substr;
|
||||
use function unpack;
|
||||
|
||||
@@ -58,7 +58,13 @@ trait VariantTrait
|
||||
throw new InvalidBytesException('Invalid number of bytes');
|
||||
}
|
||||
|
||||
/** @var array $parts */
|
||||
if ($this->isMax() || $this->isNil()) {
|
||||
// RFC 4122 defines these special types of UUID, so we will consider
|
||||
// them as belonging to the RFC 4122 variant.
|
||||
return Uuid::RFC_4122;
|
||||
}
|
||||
|
||||
/** @var int[] $parts */
|
||||
$parts = unpack('n*', $this->getBytes());
|
||||
|
||||
// $parts[5] is a 16-bit, unsigned integer containing the variant bits
|
||||
@@ -67,7 +73,7 @@ trait VariantTrait
|
||||
// three characters (three most-significant bits) to determine the
|
||||
// variant.
|
||||
$binary = str_pad(
|
||||
decbin((int) $parts[5]),
|
||||
decbin($parts[5]),
|
||||
16,
|
||||
'0',
|
||||
STR_PAD_LEFT
|
||||
@@ -76,15 +82,13 @@ trait VariantTrait
|
||||
$msb = substr($binary, 0, 3);
|
||||
|
||||
if ($msb === '111') {
|
||||
$variant = Uuid::RESERVED_FUTURE;
|
||||
return Uuid::RESERVED_FUTURE;
|
||||
} elseif ($msb === '110') {
|
||||
$variant = Uuid::RESERVED_MICROSOFT;
|
||||
} elseif (strpos($msb, '10') === 0) {
|
||||
$variant = Uuid::RFC_4122;
|
||||
} else {
|
||||
$variant = Uuid::RESERVED_NCS;
|
||||
return Uuid::RESERVED_MICROSOFT;
|
||||
} elseif (str_starts_with($msb, '10')) {
|
||||
return Uuid::RFC_4122;
|
||||
}
|
||||
|
||||
return $variant;
|
||||
return Uuid::RESERVED_NCS;
|
||||
}
|
||||
}
|
||||
|
||||
27
vendor/ramsey/uuid/src/Rfc4122/VersionTrait.php
vendored
27
vendor/ramsey/uuid/src/Rfc4122/VersionTrait.php
vendored
@@ -14,6 +14,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace Ramsey\Uuid\Rfc4122;
|
||||
|
||||
use Ramsey\Uuid\Uuid;
|
||||
|
||||
/**
|
||||
* Provides common functionality for handling the version, as defined by RFC 4122
|
||||
*
|
||||
@@ -26,6 +28,11 @@ trait VersionTrait
|
||||
*/
|
||||
abstract public function getVersion(): ?int;
|
||||
|
||||
/**
|
||||
* Returns true if these fields represent a max UUID
|
||||
*/
|
||||
abstract public function isMax(): bool;
|
||||
|
||||
/**
|
||||
* Returns true if these fields represent a nil UUID
|
||||
*/
|
||||
@@ -38,20 +45,16 @@ trait VersionTrait
|
||||
*/
|
||||
private function isCorrectVersion(): bool
|
||||
{
|
||||
if ($this->isNil()) {
|
||||
if ($this->isNil() || $this->isMax()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
switch ($this->getVersion()) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return match ($this->getVersion()) {
|
||||
Uuid::UUID_TYPE_TIME, Uuid::UUID_TYPE_DCE_SECURITY,
|
||||
Uuid::UUID_TYPE_HASH_MD5, Uuid::UUID_TYPE_RANDOM,
|
||||
Uuid::UUID_TYPE_HASH_SHA1, Uuid::UUID_TYPE_REORDERED_TIME,
|
||||
Uuid::UUID_TYPE_UNIX_TIME, Uuid::UUID_TYPE_CUSTOM => true,
|
||||
default => false,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user