Вход Регистрация
Файл: vendor/ramsey/uuid/src/DeprecatedUuidMethodsTrait.php
Строк: 506
<?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 
RamseyUuid;

use 
DateTimeImmutable;
use 
DateTimeInterface;
use 
RamseyUuidConverterNumberConverterInterface;
use 
RamseyUuidExceptionDateTimeException;
use 
RamseyUuidExceptionUnsupportedOperationException;
use 
Throwable;

use function 
str_pad;
use function 
substr;

use const 
STR_PAD_LEFT;

/**
 * This trait encapsulates deprecated methods for ramsey/uuid; this trait and
 * its methods will be removed in ramsey/uuid 5.0.0.
 *
 * @deprecated This trait and its methods will be removed in ramsey/uuid 5.0.0.
 *
 * @psalm-immutable
 */
trait DeprecatedUuidMethodsTrait
{
    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getClockSeqHiAndReserved()}
     *     and use the arbitrary-precision math library of your choice to
     *     convert it to a string integer.
     */
    
public function getClockSeqHiAndReserved(): string
    
{
        return 
$this->numberConverter->fromHex($this->fields->getClockSeqHiAndReserved()->toString());
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getClockSeqHiAndReserved()}.
     */
    
public function getClockSeqHiAndReservedHex(): string
    
{
        return 
$this->fields->getClockSeqHiAndReserved()->toString();
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getClockSeqLow()}
     *     and use the arbitrary-precision math library of your choice to
     *     convert it to a string integer.
     */
    
public function getClockSeqLow(): string
    
{
        return 
$this->numberConverter->fromHex($this->fields->getClockSeqLow()->toString());
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getClockSeqLow()}.
     */
    
public function getClockSeqLowHex(): string
    
{
        return 
$this->fields->getClockSeqLow()->toString();
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getClockSeq()}
     *     and use the arbitrary-precision math library of your choice to
     *     convert it to a string integer.
     */
    
public function getClockSequence(): string
    
{
        return 
$this->numberConverter->fromHex($this->fields->getClockSeq()->toString());
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getClockSeq()}.
     */
    
public function getClockSequenceHex(): string
    
{
        return 
$this->fields->getClockSeq()->toString();
    }

    
/**
     * @deprecated This method will be removed in 5.0.0. There is no alternative
     *     recommendation, so plan accordingly.
     */
    
public function getNumberConverter(): NumberConverterInterface
    
{
        return 
$this->numberConverter;
    }

    
/**
     * @deprecated In ramsey/uuid version 5.0.0, this will be removed.
     *     It is available at {@see UuidV1::getDateTime()}.
     *
     * @return DateTimeImmutable An immutable instance of DateTimeInterface
     *
     * @throws UnsupportedOperationException if UUID is not time-based
     * @throws DateTimeException if DateTime throws an exception/error
     */
    
public function getDateTime(): DateTimeInterface
    
{
        if (
$this->fields->getVersion() !== 1) {
            throw new 
UnsupportedOperationException('Not a time-based UUID');
        }

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

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance.
     *
     * @return string[]
     */
    
public function getFieldsHex(): array
    {
        return [
            
'time_low' => $this->fields->getTimeLow()->toString(),
            
'time_mid' => $this->fields->getTimeMid()->toString(),
            
'time_hi_and_version' => $this->fields->getTimeHiAndVersion()->toString(),
            
'clock_seq_hi_and_reserved' => $this->fields->getClockSeqHiAndReserved()->toString(),
            
'clock_seq_low' => $this->fields->getClockSeqLow()->toString(),
            
'node' => $this->fields->getNode()->toString(),
        ];
    }

    
/**
     * @deprecated This method will be removed in 5.0.0. There is no direct
     *     alternative, but the same information may be obtained by splitting
     *     in half the value returned by {@see UuidInterface::getHex()}.
     */
    
public function getLeastSignificantBits(): string
    
{
        
$leastSignificantHex substr($this->getHex()->toString(), 16);

        return 
$this->numberConverter->fromHex($leastSignificantHex);
    }

    
/**
     * @deprecated This method will be removed in 5.0.0. There is no direct
     *     alternative, but the same information may be obtained by splitting
     *     in half the value returned by {@see UuidInterface::getHex()}.
     */
    
public function getLeastSignificantBitsHex(): string
    
{
        return 
substr($this->getHex()->toString(), 16);
    }

    
/**
     * @deprecated This method will be removed in 5.0.0. There is no direct
     *     alternative, but the same information may be obtained by splitting
     *     in half the value returned by {@see UuidInterface::getHex()}.
     */
    
public function getMostSignificantBits(): string
    
{
        
$mostSignificantHex substr($this->getHex()->toString(), 016);

        return 
$this->numberConverter->fromHex($mostSignificantHex);
    }

    
/**
     * @deprecated This method will be removed in 5.0.0. There is no direct
     *     alternative, but the same information may be obtained by splitting
     *     in half the value returned by {@see UuidInterface::getHex()}.
     */
    
public function getMostSignificantBitsHex(): string
    
{
        return 
substr($this->getHex()->toString(), 016);
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getNode()} and use the
     *     arbitrary-precision math library of your choice to convert it to a
     *     string integer.
     */
    
public function getNode(): string
    
{
        return 
$this->numberConverter->fromHex($this->fields->getNode()->toString());
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getNode()}.
     */
    
public function getNodeHex(): string
    
{
        return 
$this->fields->getNode()->toString();
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getTimeHiAndVersion()}
     *     and use the arbitrary-precision math library of your choice to
     *     convert it to a string integer.
     */
    
public function getTimeHiAndVersion(): string
    
{
        return 
$this->numberConverter->fromHex($this->fields->getTimeHiAndVersion()->toString());
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getTimeHiAndVersion()}.
     */
    
public function getTimeHiAndVersionHex(): string
    
{
        return 
$this->fields->getTimeHiAndVersion()->toString();
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getTimeLow()} and use the
     *     arbitrary-precision math library of your choice to convert it to a
     *     string integer.
     */
    
public function getTimeLow(): string
    
{
        return 
$this->numberConverter->fromHex($this->fields->getTimeLow()->toString());
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getTimeLow()}.
     */
    
public function getTimeLowHex(): string
    
{
        return 
$this->fields->getTimeLow()->toString();
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getTimeMid()} and use the
     *     arbitrary-precision math library of your choice to convert it to a
     *     string integer.
     */
    
public function getTimeMid(): string
    
{
        return 
$this->numberConverter->fromHex($this->fields->getTimeMid()->toString());
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getTimeMid()}.
     */
    
public function getTimeMidHex(): string
    
{
        return 
$this->fields->getTimeMid()->toString();
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getTimestamp()} and use
     *     the arbitrary-precision math library of your choice to convert it to
     *     a string integer.
     */
    
public function getTimestamp(): string
    
{
        if (
$this->fields->getVersion() !== 1) {
            throw new 
UnsupportedOperationException('Not a time-based UUID');
        }

        return 
$this->numberConverter->fromHex($this->fields->getTimestamp()->toString());
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getTimestamp()}.
     */
    
public function getTimestampHex(): string
    
{
        if (
$this->fields->getVersion() !== 1) {
            throw new 
UnsupportedOperationException('Not a time-based UUID');
        }

        return 
$this->fields->getTimestamp()->toString();
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getVariant()}.
     */
    
public function getVariant(): ?int
    
{
        return 
$this->fields->getVariant();
    }

    
/**
     * @deprecated Use {@see UuidInterface::getFields()} to get a
     *     {@see RamseyUuidFieldsFieldsInterface} instance. If it is a
     *     {@see RamseyUuidRfc4122FieldsInterface} instance, you may call
     *     {@see RamseyUuidRfc4122FieldsInterface::getVersion()}.
     */
    
public function getVersion(): ?int
    
{
        return 
$this->fields->getVersion();
    }
}
Онлайн: 1
Реклама