<?php /** * This file is part of the ramsey/uuid library * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. * * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com> * @license http://opensource.org/licenses/MIT MIT */ declare(strict_types=1); namespace Ramsey\Uuid\Rfc4122; use Ramsey\Uuid\Uuid; use Ramsey\Uuid\Validator\ValidatorInterface; use function preg_match; use function str_replace; /** * Rfc4122\Validator validates strings as UUIDs of the RFC 4122 variant * * @psalm-immutable */ final class Validator implements ValidatorInterface { private const VALID_PATTERN = '\A[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-' . '[1-8][0-9A-Fa-f]{3}-[ABab89][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}\z'; /** * @psalm-return non-empty-string * @psalm-suppress MoreSpecificReturnType we know that the retrieved `string` is never empty * @psalm-suppress LessSpecificReturnStatement we know that the retrieved `string` is never empty */ public function getPattern(): string { return self::VALID_PATTERN; } public function validate(string $uuid): bool { $uuid = str_replace(['urn:', 'uuid:', 'URN:', 'UUID:', '{', '}'], '', $uuid); $uuid = strtolower($uuid); return $uuid === Uuid::NIL || $uuid === Uuid::MAX || preg_match('/' . self::VALID_PATTERN . '/Dms', $uuid); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Fields.php | File | 6.01 KB | 0644 |
|
FieldsInterface.php | File | 3.91 KB | 0644 |
|
MaxTrait.php | File | 1.06 KB | 0644 |
|
MaxUuid.php | File | 601 B | 0644 |
|
NilTrait.php | File | 1004 B | 0644 |
|
NilUuid.php | File | 602 B | 0644 |
|
TimeTrait.php | File | 1.44 KB | 0644 |
|
UuidBuilder.php | File | 4.58 KB | 0644 |
|
UuidInterface.php | File | 716 B | 0644 |
|
UuidV1.php | File | 2.02 KB | 0644 |
|
UuidV2.php | File | 4.31 KB | 0644 |
|
UuidV3.php | File | 2.01 KB | 0644 |
|
UuidV4.php | File | 1.94 KB | 0644 |
|
UuidV5.php | File | 2.02 KB | 0644 |
|
UuidV6.php | File | 810 B | 0644 |
|
UuidV7.php | File | 2.12 KB | 0644 |
|
UuidV8.php | File | 2.35 KB | 0644 |
|
Validator.php | File | 1.45 KB | 0644 |
|
VariantTrait.php | File | 2.71 KB | 0644 |
|
VersionTrait.php | File | 1.54 KB | 0644 |
|