mirror of
https://github.com/ramsey/uuid.git
synced 2026-06-14 15:56:48 +03:00
Introduce Converter namespace and move Number and Time classes into it
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace Rhumsaa\Uuid\Builder;
|
||||
|
||||
use Rhumsaa\Uuid\BigNumberConverter;
|
||||
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
|
||||
use Rhumsaa\Uuid\Codec;
|
||||
use Rhumsaa\Uuid\Uuid;
|
||||
use Rhumsaa\Uuid\UuidBuilder;
|
||||
@@ -12,7 +12,7 @@ class DefaultUuidBuilder implements UuidBuilder
|
||||
|
||||
private $converter;
|
||||
|
||||
public function __construct(BigNumberConverter $converter)
|
||||
public function __construct(NumberConverterInterface $converter)
|
||||
{
|
||||
$this->converter = $converter;
|
||||
}
|
||||
|
||||
@@ -5,14 +5,14 @@ namespace Rhumsaa\Uuid\Builder;
|
||||
use Rhumsaa\Uuid\UuidBuilder;
|
||||
use Rhumsaa\Uuid\Codec;
|
||||
use Rhumsaa\Uuid\DegradedUuid;
|
||||
use Rhumsaa\Uuid\BigNumberConverter;
|
||||
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
|
||||
|
||||
class DegradedUuidBuilder implements UuidBuilder
|
||||
{
|
||||
|
||||
private $converter;
|
||||
|
||||
public function __construct(BigNumberConverter $converter)
|
||||
public function __construct(NumberConverterInterface $converter)
|
||||
{
|
||||
$this->converter = $converter;
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace Rhumsaa\Uuid;
|
||||
namespace Rhumsaa\Uuid\Converter\Number;
|
||||
|
||||
class BigNumberConverter
|
||||
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
|
||||
|
||||
class BigNumberConverter implements NumberConverterInterface
|
||||
{
|
||||
/**
|
||||
* @param string $hex
|
||||
@@ -1,12 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace Rhumsaa\Uuid;
|
||||
namespace Rhumsaa\Uuid\Converter\Number;
|
||||
|
||||
class DegradedNumberConverter extends BigNumberConverter
|
||||
use Rhumsaa\Uuid\Exception\UnsatisfiedDependencyException;
|
||||
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
|
||||
|
||||
class DegradedNumberConverter extends BigNumberConverter implements NumberConverterInterface
|
||||
{
|
||||
public function fromHex($hex)
|
||||
{
|
||||
throw new Exception\UnsatisfiedDependencyException(
|
||||
throw new UnsatisfiedDependencyException(
|
||||
'Cannot call ' . __METHOD__ . ' without support for large '
|
||||
. 'integers, since integer is an unsigned '
|
||||
. '128-bit integer; Moontoast\Math\BigNumber is required.'
|
||||
@@ -16,7 +19,7 @@ class DegradedNumberConverter extends BigNumberConverter
|
||||
|
||||
public function toHex($integer)
|
||||
{
|
||||
throw new Exception\UnsatisfiedDependencyException(
|
||||
throw new UnsatisfiedDependencyException(
|
||||
'Cannot call ' . __METHOD__ . ' without support for large '
|
||||
. 'integers, since integer is an unsigned '
|
||||
. '128-bit integer; Moontoast\Math\BigNumber is required. '
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace Rhumsaa\Uuid\Converter;
|
||||
|
||||
interface NumberConverterInterface
|
||||
{
|
||||
public function fromHex($hex);
|
||||
|
||||
public function toHex($integer);
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace Rhumsaa\Uuid\Time;
|
||||
namespace Rhumsaa\Uuid\Converter\Time;
|
||||
|
||||
use Rhumsaa\Uuid\TimeConverter;
|
||||
use Rhumsaa\Uuid\Converter\TimeConverterInterface;
|
||||
|
||||
class BigNumberTimeConverter implements TimeConverter
|
||||
class BigNumberTimeConverter implements TimeConverterInterface
|
||||
{
|
||||
public function calculateTime($seconds, $microSeconds)
|
||||
{
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace Rhumsaa\Uuid\Time;
|
||||
namespace Rhumsaa\Uuid\Converter\Time;
|
||||
|
||||
use Rhumsaa\Uuid\TimeConverter;
|
||||
use Rhumsaa\Uuid\Converter\TimeConverterInterface;
|
||||
use Rhumsaa\Uuid\Exception\UnsatisfiedDependencyException;
|
||||
|
||||
class DegradedTimeConverter implements TimeConverter
|
||||
class DegradedTimeConverter implements TimeConverterInterface
|
||||
{
|
||||
public function calculateTime($seconds, $microSeconds)
|
||||
{
|
||||
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace Rhumsaa\Uuid\Time;
|
||||
namespace Rhumsaa\Uuid\Converter\Time;
|
||||
|
||||
use Rhumsaa\Uuid\TimeConverter;
|
||||
use Rhumsaa\Uuid\Converter\TimeConverterInterface;
|
||||
|
||||
class PhpTimeConverter implements TimeConverter
|
||||
class PhpTimeConverter implements TimeConverterInterface
|
||||
{
|
||||
public function calculateTime($seconds, $microSeconds)
|
||||
{
|
||||
@@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace Rhumsaa\Uuid;
|
||||
namespace Rhumsaa\Uuid\Converter;
|
||||
|
||||
interface TimeConverter
|
||||
interface TimeConverterInterface
|
||||
{
|
||||
|
||||
/**
|
||||
@@ -2,10 +2,12 @@
|
||||
|
||||
namespace Rhumsaa\Uuid;
|
||||
|
||||
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
|
||||
|
||||
class DegradedUuid extends Uuid
|
||||
{
|
||||
|
||||
public function __construct(array $fields, BigNumberConverter $converter, Codec $codec)
|
||||
public function __construct(array $fields, NumberConverterInterface $converter, Codec $codec)
|
||||
{
|
||||
parent::__construct($fields, $converter, $codec);
|
||||
}
|
||||
|
||||
+5
-3
@@ -5,9 +5,11 @@ namespace Rhumsaa\Uuid;
|
||||
use Rhumsaa\Uuid\Node\FallbackNodeProvider;
|
||||
use Rhumsaa\Uuid\Node\RandomNodeProvider;
|
||||
use Rhumsaa\Uuid\Node\SystemNodeProvider;
|
||||
use Rhumsaa\Uuid\Time\BigNumberTimeConverter;
|
||||
use Rhumsaa\Uuid\Time\DegradedTimeConverter;
|
||||
use Rhumsaa\Uuid\Time\PhpTimeConverter;
|
||||
use Rhumsaa\Uuid\Converter\Number\BigNumberConverter;
|
||||
use Rhumsaa\Uuid\Converter\Number\DegradedNumberConverter;
|
||||
use Rhumsaa\Uuid\Converter\Time\BigNumberTimeConverter;
|
||||
use Rhumsaa\Uuid\Converter\Time\DegradedTimeConverter;
|
||||
use Rhumsaa\Uuid\Converter\Time\PhpTimeConverter;
|
||||
use Rhumsaa\Uuid\Time\SystemTimeProvider;
|
||||
use Rhumsaa\Uuid\Builder\DefaultUuidBuilder;
|
||||
use Rhumsaa\Uuid\Codec\StringCodec;
|
||||
|
||||
+3
-2
@@ -12,6 +12,7 @@
|
||||
namespace Rhumsaa\Uuid;
|
||||
|
||||
use InvalidArgumentException;
|
||||
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
|
||||
|
||||
/**
|
||||
* Represents a universally unique identifier (UUID), according to RFC 4122
|
||||
@@ -137,7 +138,7 @@ class Uuid implements UuidInterface, \JsonSerializable
|
||||
* @param Codec $codec String codec
|
||||
* @link Rhumsaa.Uuid.Uuid.html#method_getFields
|
||||
*/
|
||||
public function __construct(array $fields, BigNumberConverter $converter, Codec $codec)
|
||||
public function __construct(array $fields, NumberConverterInterface $converter, Codec $codec)
|
||||
{
|
||||
$this->fields = $fields;
|
||||
$this->codec = $codec;
|
||||
@@ -303,7 +304,7 @@ class Uuid implements UuidInterface, \JsonSerializable
|
||||
return sprintf('%04x', $this->getClockSequence());
|
||||
}
|
||||
|
||||
public function getConverter()
|
||||
public function getNumberConverter()
|
||||
{
|
||||
return $this->converter;
|
||||
}
|
||||
|
||||
+8
-4
@@ -2,6 +2,10 @@
|
||||
|
||||
namespace Rhumsaa\Uuid;
|
||||
|
||||
use InvalidArgumentException;
|
||||
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
|
||||
use Rhumsaa\Uuid\Converter\TimeConverterInterface;
|
||||
|
||||
class UuidFactory
|
||||
{
|
||||
|
||||
@@ -19,7 +23,7 @@ class UuidFactory
|
||||
|
||||
/**
|
||||
*
|
||||
* @var BigNumberConverter
|
||||
* @var NumberConverterInterface
|
||||
*/
|
||||
private $numberConverter = null;
|
||||
|
||||
@@ -30,7 +34,7 @@ class UuidFactory
|
||||
|
||||
/**
|
||||
*
|
||||
* @var TimeConverter
|
||||
* @var TimeConverterInterface
|
||||
*/
|
||||
private $timeConverter = null;
|
||||
|
||||
@@ -68,7 +72,7 @@ class UuidFactory
|
||||
return $this->codec;
|
||||
}
|
||||
|
||||
public function setTimeConverter(TimeConverter $converter)
|
||||
public function setTimeConverter(TimeConverterInterface $converter)
|
||||
{
|
||||
$this->timeConverter = $converter;
|
||||
}
|
||||
@@ -88,7 +92,7 @@ class UuidFactory
|
||||
$this->nodeProvider = $provider;
|
||||
}
|
||||
|
||||
public function setNumberConverter(BigNumberConverter $converter)
|
||||
public function setNumberConverter(NumberConverterInterface $converter)
|
||||
{
|
||||
$this->numberConverter = $converter;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace Rhumsaa\Uuid;
|
||||
|
||||
use Rhumsaa\Uuid\Converter\NumberConverterInterface;
|
||||
|
||||
interface UuidInterface
|
||||
{
|
||||
|
||||
@@ -16,9 +18,9 @@ interface UuidInterface
|
||||
public function equals($other);
|
||||
|
||||
/**
|
||||
* @return BigNumberConverter
|
||||
* @return NumberConverterInterface
|
||||
*/
|
||||
public function getConverter();
|
||||
public function getNumberConverter();
|
||||
|
||||
/**
|
||||
* @return string
|
||||
|
||||
+3
-1
@@ -1,6 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace Rhumsaa\Uuid;
|
||||
namespace Rhumsaa\Uuid\Converter\Number;
|
||||
|
||||
use Rhumsaa\Uuid\TestCase;
|
||||
|
||||
class DegradedNumberConverterTest extends TestCase
|
||||
{
|
||||
+2
-2
@@ -187,7 +187,7 @@ class UuidTest extends TestCase
|
||||
$uuid = Uuid::fromString('ff6f8cb0-c57d-11e1-9b21-0800200c9a66');
|
||||
|
||||
$this->assertInstanceOf('Rhumsaa\Uuid\DegradedUuid', $uuid);
|
||||
$this->assertInstanceOf('Rhumsaa\Uuid\DegradedNumberConverter', $uuid->getConverter());
|
||||
$this->assertInstanceOf('Rhumsaa\Uuid\Converter\Number\DegradedNumberConverter', $uuid->getNumberConverter());
|
||||
|
||||
$date = $uuid->getDateTime();
|
||||
}
|
||||
@@ -1687,7 +1687,7 @@ class UuidTest extends TestCase
|
||||
|
||||
/**
|
||||
* @expectedException Rhumsaa\Uuid\Exception\UnsatisfiedDependencyException
|
||||
* @expectedExceptionMessage Cannot call Rhumsaa\Uuid\DegradedNumberConverter::fromHex without support for large integers
|
||||
* @expectedExceptionMessage Cannot call Rhumsaa\Uuid\Converter\Number\DegradedNumberConverter::fromHex without support for large integers
|
||||
*/
|
||||
public function testGetInteger()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user