X7ROOT File Manager
Current Path:
/home/prisjneg/public_html/vendor/ramsey/uuid/src/Generator
home
/
prisjneg
/
public_html
/
vendor
/
ramsey
/
uuid
/
src
/
Generator
/
📁
..
📄
CombGenerator.php
(3.41 KB)
📄
DceSecurityGenerator.php
(4.23 KB)
📄
DceSecurityGeneratorInterface.php
(1.67 KB)
📄
DefaultNameGenerator.php
(1.06 KB)
📄
DefaultTimeGenerator.php
(3.65 KB)
📄
NameGeneratorFactory.php
(695 B)
📄
NameGeneratorInterface.php
(1.01 KB)
📄
PeclUuidNameGenerator.php
(1.25 KB)
📄
PeclUuidRandomGenerator.php
(816 B)
📄
PeclUuidTimeGenerator.php
(879 B)
📄
RandomBytesGenerator.php
(1.05 KB)
📄
RandomGeneratorFactory.php
(705 B)
📄
RandomGeneratorInterface.php
(735 B)
📄
RandomLibAdapter.php
(1.51 KB)
📄
TimeGeneratorFactory.php
(1.09 KB)
📄
TimeGeneratorInterface.php
(1.11 KB)
📄
UnixTimeGenerator.php
(5.71 KB)
Editing: DefaultTimeGenerator.php
<?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\Generator; use Ramsey\Uuid\Converter\TimeConverterInterface; use Ramsey\Uuid\Exception\InvalidArgumentException; use Ramsey\Uuid\Exception\RandomSourceException; use Ramsey\Uuid\Exception\TimeSourceException; use Ramsey\Uuid\Provider\NodeProviderInterface; use Ramsey\Uuid\Provider\TimeProviderInterface; use Ramsey\Uuid\Type\Hexadecimal; use Throwable; use function dechex; use function hex2bin; use function is_int; use function pack; use function preg_match; use function sprintf; use function str_pad; use function strlen; use const STR_PAD_LEFT; /** * DefaultTimeGenerator generates strings of binary data based on a node ID, clock sequence, and the current time */ class DefaultTimeGenerator implements TimeGeneratorInterface { public function __construct( private NodeProviderInterface $nodeProvider, private TimeConverterInterface $timeConverter, private TimeProviderInterface $timeProvider, ) { } /** * @throws InvalidArgumentException if the parameters contain invalid values * @throws RandomSourceException if random_int() throws an exception/error * * @inheritDoc */ public function generate($node = null, ?int $clockSeq = null): string { if ($node instanceof Hexadecimal) { $node = $node->toString(); } $node = $this->getValidNode($node); if ($clockSeq === null) { try { // This does not use "stable storage"; see RFC 9562, section 6.3. $clockSeq = random_int(0, 0x3fff); } catch (Throwable $exception) { throw new RandomSourceException($exception->getMessage(), (int) $exception->getCode(), $exception); } } $time = $this->timeProvider->getTime(); $uuidTime = $this->timeConverter->calculateTime( $time->getSeconds()->toString(), $time->getMicroseconds()->toString() ); $timeHex = str_pad($uuidTime->toString(), 16, '0', STR_PAD_LEFT); if (strlen($timeHex) !== 16) { throw new TimeSourceException(sprintf('The generated time of \'%s\' is larger than expected', $timeHex)); } $timeBytes = (string) hex2bin($timeHex); return $timeBytes[4] . $timeBytes[5] . $timeBytes[6] . $timeBytes[7] . $timeBytes[2] . $timeBytes[3] . $timeBytes[0] . $timeBytes[1] . pack('n*', $clockSeq) . $node; } /** * Uses the node provider given when constructing this instance to get the node ID (usually a MAC address) * * @param int | string | null $node A node value that may be used to override the node provider * * @return string 6-byte binary string representation of the node * * @throws InvalidArgumentException */ private function getValidNode(int | string | null $node): string { if ($node === null) { $node = $this->nodeProvider->getNode(); } // Convert the node to hex if it is still an integer. if (is_int($node)) { $node = dechex($node); } if (!preg_match('/^[A-Fa-f0-9]+$/', (string) $node) || strlen((string) $node) > 12) { throw new InvalidArgumentException('Invalid node value'); } return (string) hex2bin(str_pad((string) $node, 12, '0', STR_PAD_LEFT)); } }
Upload File
Create Folder