function UuidBuilder::build
Same name in this branch
- 11.1.x vendor/ramsey/uuid/src/Nonstandard/UuidBuilder.php \Ramsey\Uuid\Nonstandard\UuidBuilder::build()
Builds and returns a Uuid
@psalm-pure
Parameters
CodecInterface $codec The codec to use for building this Uuid instance:
string $bytes The byte string from which to construct a UUID:
Return value
Rfc4122UuidInterface UuidBuilder returns instances of Rfc4122UuidInterface
Overrides UuidBuilderInterface::build
File
-
vendor/
ramsey/ uuid/ src/ Rfc4122/ UuidBuilder.php, line 69
Class
- UuidBuilder
- UuidBuilder builds instances of RFC 4122 UUIDs
Namespace
Ramsey\Uuid\Rfc4122Code
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 Uuid::UUID_TYPE_TIME:
return new UuidV1($fields, $this->numberConverter, $codec, $this->timeConverter);
case Uuid::UUID_TYPE_DCE_SECURITY:
return new UuidV2($fields, $this->numberConverter, $codec, $this->timeConverter);
case Uuid::UUID_TYPE_HASH_MD5:
return new UuidV3($fields, $this->numberConverter, $codec, $this->timeConverter);
case Uuid::UUID_TYPE_RANDOM:
return new UuidV4($fields, $this->numberConverter, $codec, $this->timeConverter);
case Uuid::UUID_TYPE_HASH_SHA1:
return new UuidV5($fields, $this->numberConverter, $codec, $this->timeConverter);
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('The UUID version in the given fields is not supported ' . 'by this UUID builder');
} catch (Throwable $e) {
throw new UnableToBuildUuidException($e->getMessage(), (int) $e->getCode(), $e);
}
}