Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. UuidBuilder.php

function UuidBuilder::build

Same name in this branch
  1. 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\Rfc4122

Code

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);
    }
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal