mirror of
https://github.com/ramsey/uuid.git
synced 2026-06-14 15:56:48 +03:00
Remove CalculatorInterface as a Uuid constructor parameter
This commit is contained in:
@@ -66,9 +66,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
||||
* Introduce `Converter\TimeConverterInterface $timeConverter` as fourth required
|
||||
constructor parameter for `Uuid` and second required constructor parameter for
|
||||
`Builder\DefaultUuidBuilder`.
|
||||
* Introduce `Math\CalculatorInterface $calculator` as the fifth required
|
||||
constructor parameter for `Uuid` and the third required constructor parameter
|
||||
for `Builder\DefaultUuidBuilder`.
|
||||
* Change `UuidInterface::getInteger()` to always return a `string` value instead
|
||||
of `mixed`. This is a string representation of a 128-bit integer. You may then
|
||||
use a math library of your choice (bcmath, gmp, etc.) to operate on the
|
||||
|
||||
@@ -17,7 +17,6 @@ namespace Ramsey\Uuid\Builder;
|
||||
use Ramsey\Uuid\Codec\CodecInterface;
|
||||
use Ramsey\Uuid\Converter\NumberConverterInterface;
|
||||
use Ramsey\Uuid\Converter\TimeConverterInterface;
|
||||
use Ramsey\Uuid\Math\CalculatorInterface;
|
||||
use Ramsey\Uuid\Rfc4122\Fields as Rfc4122Fields;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Ramsey\Uuid\UuidInterface;
|
||||
@@ -39,11 +38,6 @@ class DefaultUuidBuilder implements UuidBuilderInterface
|
||||
*/
|
||||
private $timeConverter;
|
||||
|
||||
/**
|
||||
* @var CalculatorInterface
|
||||
*/
|
||||
private $calculator;
|
||||
|
||||
/**
|
||||
* Constructs the DefaultUuidBuilder
|
||||
*
|
||||
@@ -51,17 +45,13 @@ class DefaultUuidBuilder implements UuidBuilderInterface
|
||||
* use when constructing the Uuid
|
||||
* @param TimeConverterInterface $timeConverter The time converter to use
|
||||
* for converting timestamps extracted from a UUID to Unix timestamps
|
||||
* @param CalculatorInterface $calculator The calculator to use for
|
||||
* performing mathematical operations on UUIDs
|
||||
*/
|
||||
public function __construct(
|
||||
NumberConverterInterface $numberConverter,
|
||||
TimeConverterInterface $timeConverter,
|
||||
CalculatorInterface $calculator
|
||||
TimeConverterInterface $timeConverter
|
||||
) {
|
||||
$this->numberConverter = $numberConverter;
|
||||
$this->timeConverter = $timeConverter;
|
||||
$this->calculator = $calculator;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -80,8 +70,7 @@ class DefaultUuidBuilder implements UuidBuilderInterface
|
||||
$fields,
|
||||
$this->numberConverter,
|
||||
$codec,
|
||||
$this->timeConverter,
|
||||
$this->calculator
|
||||
$this->timeConverter
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,8 +19,6 @@ use Ramsey\Uuid\Converter\NumberConverterInterface;
|
||||
use Ramsey\Uuid\Converter\Time\DegradedTimeConverter;
|
||||
use Ramsey\Uuid\Converter\TimeConverterInterface;
|
||||
use Ramsey\Uuid\DegradedUuid;
|
||||
use Ramsey\Uuid\Math\BrickMathCalculator;
|
||||
use Ramsey\Uuid\Math\CalculatorInterface;
|
||||
use Ramsey\Uuid\Rfc4122\Fields as Rfc4122Fields;
|
||||
use Ramsey\Uuid\UuidInterface;
|
||||
|
||||
@@ -42,27 +40,18 @@ class DegradedUuidBuilder implements UuidBuilderInterface
|
||||
*/
|
||||
private $timeConverter;
|
||||
|
||||
/**
|
||||
* @var CalculatorInterface
|
||||
*/
|
||||
private $calculator;
|
||||
|
||||
/**
|
||||
* @param NumberConverterInterface $numberConverter The number converter to
|
||||
* use when constructing the DegradedUuid
|
||||
* @param TimeConverterInterface|null $timeConverter The time converter to use
|
||||
* for converting timestamps extracted from a UUID to Unix timestamps
|
||||
* @param CalculatorInterface|null $calculator The calculator to use for
|
||||
* performing mathematical operations on UUIDs
|
||||
*/
|
||||
public function __construct(
|
||||
NumberConverterInterface $numberConverter,
|
||||
?TimeConverterInterface $timeConverter = null,
|
||||
?CalculatorInterface $calculator = null
|
||||
?TimeConverterInterface $timeConverter = null
|
||||
) {
|
||||
$this->numberConverter = $numberConverter;
|
||||
$this->timeConverter = $timeConverter ?: new DegradedTimeConverter();
|
||||
$this->calculator = $calculator ?: new BrickMathCalculator();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -81,8 +70,7 @@ class DegradedUuidBuilder implements UuidBuilderInterface
|
||||
$fields,
|
||||
$this->numberConverter,
|
||||
$codec,
|
||||
$this->timeConverter,
|
||||
$this->calculator
|
||||
$this->timeConverter
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -324,12 +324,12 @@ class FeatureSet
|
||||
private function buildUuidBuilder(bool $useGuids = false): UuidBuilderInterface
|
||||
{
|
||||
if ($useGuids) {
|
||||
return new GuidBuilder($this->numberConverter, $this->timeConverter, $this->calculator);
|
||||
return new GuidBuilder($this->numberConverter, $this->timeConverter);
|
||||
}
|
||||
|
||||
return new FallbackBuilder([
|
||||
new DefaultUuidBuilder($this->numberConverter, $this->timeConverter, $this->calculator),
|
||||
new NonstandardUuidBuilder($this->numberConverter, $this->timeConverter, $this->calculator),
|
||||
new DefaultUuidBuilder($this->numberConverter, $this->timeConverter),
|
||||
new NonstandardUuidBuilder($this->numberConverter, $this->timeConverter),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
+2
-4
@@ -17,7 +17,6 @@ namespace Ramsey\Uuid\Guid;
|
||||
use Ramsey\Uuid\Codec\CodecInterface;
|
||||
use Ramsey\Uuid\Converter\NumberConverterInterface;
|
||||
use Ramsey\Uuid\Converter\TimeConverterInterface;
|
||||
use Ramsey\Uuid\Math\CalculatorInterface;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Ramsey\Uuid\UuidInterface;
|
||||
|
||||
@@ -41,9 +40,8 @@ class Guid extends Uuid implements UuidInterface
|
||||
Fields $fields,
|
||||
NumberConverterInterface $numberConverter,
|
||||
CodecInterface $codec,
|
||||
TimeConverterInterface $timeConverter,
|
||||
CalculatorInterface $calculator
|
||||
TimeConverterInterface $timeConverter
|
||||
) {
|
||||
parent::__construct($fields, $numberConverter, $codec, $timeConverter, $calculator);
|
||||
parent::__construct($fields, $numberConverter, $codec, $timeConverter);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ use Ramsey\Uuid\Builder\UuidBuilderInterface;
|
||||
use Ramsey\Uuid\Codec\CodecInterface;
|
||||
use Ramsey\Uuid\Converter\NumberConverterInterface;
|
||||
use Ramsey\Uuid\Converter\TimeConverterInterface;
|
||||
use Ramsey\Uuid\Math\CalculatorInterface;
|
||||
use Ramsey\Uuid\UuidInterface;
|
||||
|
||||
/**
|
||||
@@ -38,27 +37,18 @@ class GuidBuilder implements UuidBuilderInterface
|
||||
*/
|
||||
private $timeConverter;
|
||||
|
||||
/**
|
||||
* @var CalculatorInterface
|
||||
*/
|
||||
private $calculator;
|
||||
|
||||
/**
|
||||
* @param NumberConverterInterface $numberConverter The number converter to
|
||||
* use when constructing the Guid
|
||||
* @param TimeConverterInterface $timeConverter The time converter to use
|
||||
* for converting timestamps extracted from a UUID to Unix timestamps
|
||||
* @param CalculatorInterface $calculator The calculator to use for
|
||||
* performing mathematical operations on UUIDs
|
||||
*/
|
||||
public function __construct(
|
||||
NumberConverterInterface $numberConverter,
|
||||
TimeConverterInterface $timeConverter,
|
||||
CalculatorInterface $calculator
|
||||
TimeConverterInterface $timeConverter
|
||||
) {
|
||||
$this->numberConverter = $numberConverter;
|
||||
$this->timeConverter = $timeConverter;
|
||||
$this->calculator = $calculator;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -77,8 +67,7 @@ class GuidBuilder implements UuidBuilderInterface
|
||||
$fields,
|
||||
$this->numberConverter,
|
||||
$codec,
|
||||
$this->timeConverter,
|
||||
$this->calculator
|
||||
$this->timeConverter
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@ namespace Ramsey\Uuid\Nonstandard;
|
||||
use Ramsey\Uuid\Codec\CodecInterface;
|
||||
use Ramsey\Uuid\Converter\NumberConverterInterface;
|
||||
use Ramsey\Uuid\Converter\TimeConverterInterface;
|
||||
use Ramsey\Uuid\Math\CalculatorInterface;
|
||||
use Ramsey\Uuid\Uuid as Rfc4122Uuid;
|
||||
use Ramsey\Uuid\UuidInterface;
|
||||
|
||||
@@ -32,9 +31,8 @@ class Uuid extends Rfc4122Uuid implements UuidInterface
|
||||
Fields $fields,
|
||||
NumberConverterInterface $numberConverter,
|
||||
CodecInterface $codec,
|
||||
TimeConverterInterface $timeConverter,
|
||||
CalculatorInterface $calculator
|
||||
TimeConverterInterface $timeConverter
|
||||
) {
|
||||
parent::__construct($fields, $numberConverter, $codec, $timeConverter, $calculator);
|
||||
parent::__construct($fields, $numberConverter, $codec, $timeConverter);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ use Ramsey\Uuid\Builder\UuidBuilderInterface;
|
||||
use Ramsey\Uuid\Codec\CodecInterface;
|
||||
use Ramsey\Uuid\Converter\NumberConverterInterface;
|
||||
use Ramsey\Uuid\Converter\TimeConverterInterface;
|
||||
use Ramsey\Uuid\Math\CalculatorInterface;
|
||||
use Ramsey\Uuid\UuidInterface;
|
||||
|
||||
/**
|
||||
@@ -38,27 +37,18 @@ class UuidBuilder implements UuidBuilderInterface
|
||||
*/
|
||||
private $timeConverter;
|
||||
|
||||
/**
|
||||
* @var CalculatorInterface
|
||||
*/
|
||||
private $calculator;
|
||||
|
||||
/**
|
||||
* @param NumberConverterInterface $numberConverter The number converter to
|
||||
* use when constructing the Nonstandard\Uuid
|
||||
* @param TimeConverterInterface $timeConverter The time converter to use
|
||||
* for converting timestamps extracted from a UUID to Unix timestamps
|
||||
* @param CalculatorInterface $calculator The calculator to use for
|
||||
* performing mathematical operations on UUIDs
|
||||
*/
|
||||
public function __construct(
|
||||
NumberConverterInterface $numberConverter,
|
||||
TimeConverterInterface $timeConverter,
|
||||
CalculatorInterface $calculator
|
||||
TimeConverterInterface $timeConverter
|
||||
) {
|
||||
$this->numberConverter = $numberConverter;
|
||||
$this->timeConverter = $timeConverter;
|
||||
$this->calculator = $calculator;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -78,8 +68,7 @@ class UuidBuilder implements UuidBuilderInterface
|
||||
$fields,
|
||||
$this->numberConverter,
|
||||
$codec,
|
||||
$this->timeConverter,
|
||||
$this->calculator
|
||||
$this->timeConverter
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-12
@@ -22,7 +22,6 @@ use Ramsey\Uuid\Converter\TimeConverterInterface;
|
||||
use Ramsey\Uuid\Exception\DateTimeException;
|
||||
use Ramsey\Uuid\Exception\UnsupportedOperationException;
|
||||
use Ramsey\Uuid\Fields\FieldsInterface;
|
||||
use Ramsey\Uuid\Math\CalculatorInterface;
|
||||
use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface;
|
||||
|
||||
/**
|
||||
@@ -170,11 +169,6 @@ class Uuid implements UuidInterface
|
||||
*/
|
||||
protected $timeConverter;
|
||||
|
||||
/**
|
||||
* @var CalculatorInterface
|
||||
*/
|
||||
protected $calculator;
|
||||
|
||||
/**
|
||||
* Creates a universally unique identifier (UUID) from an array of fields
|
||||
*
|
||||
@@ -198,21 +192,17 @@ class Uuid implements UuidInterface
|
||||
* UUID strings
|
||||
* @param TimeConverterInterface $timeConverter The time converter to use
|
||||
* for converting timestamps extracted from a UUID to unix timestamps
|
||||
* @param CalculatorInterface $calculator The calculator to use for performing
|
||||
* mathematical operations on UUIDs
|
||||
*/
|
||||
public function __construct(
|
||||
Rfc4122FieldsInterface $fields,
|
||||
NumberConverterInterface $numberConverter,
|
||||
CodecInterface $codec,
|
||||
TimeConverterInterface $timeConverter,
|
||||
CalculatorInterface $calculator
|
||||
TimeConverterInterface $timeConverter
|
||||
) {
|
||||
$this->fields = $fields;
|
||||
$this->codec = $codec;
|
||||
$this->numberConverter = $numberConverter;
|
||||
$this->timeConverter = $timeConverter;
|
||||
$this->calculator = $calculator;
|
||||
}
|
||||
|
||||
public function __toString(): string
|
||||
@@ -376,7 +366,7 @@ class Uuid implements UuidInterface
|
||||
}
|
||||
|
||||
$unixTime = $this->timeConverter->convertTime(
|
||||
$this->calculator->toIntegerValue($this->fields->getTimestamp())->toString()
|
||||
$this->numberConverter->fromHex($this->fields->getTimestamp()->toString())
|
||||
);
|
||||
|
||||
try {
|
||||
|
||||
@@ -9,7 +9,6 @@ use Ramsey\Uuid\Builder\DefaultUuidBuilder;
|
||||
use Ramsey\Uuid\Codec\CodecInterface;
|
||||
use Ramsey\Uuid\Converter\NumberConverterInterface;
|
||||
use Ramsey\Uuid\Converter\TimeConverterInterface;
|
||||
use Ramsey\Uuid\Math\CalculatorInterface;
|
||||
use Ramsey\Uuid\Test\TestCase;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
|
||||
@@ -19,10 +18,9 @@ class DefaultUuidBuilderTest extends TestCase
|
||||
{
|
||||
$numberConverter = Mockery::mock(NumberConverterInterface::class);
|
||||
$timeConverter = Mockery::mock(TimeConverterInterface::class);
|
||||
$calculator = Mockery::mock(CalculatorInterface::class);
|
||||
$codec = Mockery::mock(CodecInterface::class);
|
||||
|
||||
$builder = new DefaultUuidBuilder($numberConverter, $timeConverter, $calculator);
|
||||
$builder = new DefaultUuidBuilder($numberConverter, $timeConverter);
|
||||
|
||||
$fields = [
|
||||
'time_low' => '754cd475',
|
||||
|
||||
@@ -13,7 +13,6 @@ use Ramsey\Uuid\Converter\TimeConverterInterface;
|
||||
use Ramsey\Uuid\Guid\Fields;
|
||||
use Ramsey\Uuid\Guid\Guid;
|
||||
use Ramsey\Uuid\Guid\GuidBuilder;
|
||||
use Ramsey\Uuid\Math\CalculatorInterface;
|
||||
use Ramsey\Uuid\Test\TestCase;
|
||||
use Ramsey\Uuid\UuidInterface;
|
||||
|
||||
@@ -74,9 +73,8 @@ class GuidStringCodecTest extends TestCase
|
||||
$codec = new GuidStringCodec($this->builder);
|
||||
$numberConverter = Mockery::mock(NumberConverterInterface::class);
|
||||
$timeConverter = Mockery::mock(TimeConverterInterface::class);
|
||||
$calculator = Mockery::mock(CalculatorInterface::class);
|
||||
|
||||
$uuid = new Guid($fields, $numberConverter, $codec, $timeConverter, $calculator);
|
||||
$uuid = new Guid($fields, $numberConverter, $codec, $timeConverter);
|
||||
|
||||
$bytes = $codec->encodeBinary($uuid);
|
||||
|
||||
@@ -89,8 +87,7 @@ class GuidStringCodecTest extends TestCase
|
||||
|
||||
$numberConverter = Mockery::mock(NumberConverterInterface::class);
|
||||
$timeConverter = Mockery::mock(TimeConverterInterface::class);
|
||||
$calculator = Mockery::mock(CalculatorInterface::class);
|
||||
$builder = new GuidBuilder($numberConverter, $timeConverter, $calculator);
|
||||
$builder = new GuidBuilder($numberConverter, $timeConverter);
|
||||
$codec = new GuidStringCodec($builder);
|
||||
$guid = $codec->decode($string);
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@ use Ramsey\Uuid\Converter\NumberConverterInterface;
|
||||
use Ramsey\Uuid\Converter\TimeConverterInterface;
|
||||
use Ramsey\Uuid\Exception\InvalidArgumentException;
|
||||
use Ramsey\Uuid\Exception\UnsupportedOperationException;
|
||||
use Ramsey\Uuid\Math\CalculatorInterface;
|
||||
use Ramsey\Uuid\Rfc4122\Fields;
|
||||
use Ramsey\Uuid\Test\TestCase;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
@@ -85,8 +84,7 @@ class OrderedTimeCodecTest extends TestCase
|
||||
|
||||
$numberConverter = Mockery::mock(NumberConverterInterface::class);
|
||||
$timeConverter = Mockery::mock(TimeConverterInterface::class);
|
||||
$calculator = Mockery::mock(CalculatorInterface::class);
|
||||
$builder = new DefaultUuidBuilder($numberConverter, $timeConverter, $calculator);
|
||||
$builder = new DefaultUuidBuilder($numberConverter, $timeConverter);
|
||||
$codec = new OrderedTimeCodec($builder);
|
||||
|
||||
$factory = new UuidFactory();
|
||||
@@ -124,8 +122,7 @@ class OrderedTimeCodecTest extends TestCase
|
||||
|
||||
$numberConverter = Mockery::mock(NumberConverterInterface::class);
|
||||
$timeConverter = Mockery::mock(TimeConverterInterface::class);
|
||||
$calculator = Mockery::mock(CalculatorInterface::class);
|
||||
$builder = new DefaultUuidBuilder($numberConverter, $timeConverter, $calculator);
|
||||
$builder = new DefaultUuidBuilder($numberConverter, $timeConverter);
|
||||
$codec = new OrderedTimeCodec($builder);
|
||||
|
||||
$factory = new UuidFactory();
|
||||
@@ -143,8 +140,7 @@ class OrderedTimeCodecTest extends TestCase
|
||||
|
||||
$numberConverter = Mockery::mock(NumberConverterInterface::class);
|
||||
$timeConverter = Mockery::mock(TimeConverterInterface::class);
|
||||
$calculator = Mockery::mock(CalculatorInterface::class);
|
||||
$builder = new DefaultUuidBuilder($numberConverter, $timeConverter, $calculator);
|
||||
$builder = new DefaultUuidBuilder($numberConverter, $timeConverter);
|
||||
$codec = new OrderedTimeCodec($builder);
|
||||
|
||||
$uuid = Mockery::mock(UuidInterface::class, [
|
||||
@@ -166,8 +162,7 @@ class OrderedTimeCodecTest extends TestCase
|
||||
|
||||
$numberConverter = Mockery::mock(NumberConverterInterface::class);
|
||||
$timeConverter = Mockery::mock(TimeConverterInterface::class);
|
||||
$calculator = Mockery::mock(CalculatorInterface::class);
|
||||
$builder = new DefaultUuidBuilder($numberConverter, $timeConverter, $calculator);
|
||||
$builder = new DefaultUuidBuilder($numberConverter, $timeConverter);
|
||||
$codec = new OrderedTimeCodec($builder);
|
||||
|
||||
$factory = new UuidFactory();
|
||||
@@ -213,8 +208,7 @@ class OrderedTimeCodecTest extends TestCase
|
||||
|
||||
$numberConverter = Mockery::mock(NumberConverterInterface::class);
|
||||
$timeConverter = Mockery::mock(TimeConverterInterface::class);
|
||||
$calculator = Mockery::mock(CalculatorInterface::class);
|
||||
$builder = new DefaultUuidBuilder($numberConverter, $timeConverter, $calculator);
|
||||
$builder = new DefaultUuidBuilder($numberConverter, $timeConverter);
|
||||
$codec = new OrderedTimeCodec($builder);
|
||||
|
||||
$factory = new UuidFactory();
|
||||
|
||||
+1
-3
@@ -24,7 +24,6 @@ use Ramsey\Uuid\Generator\CombGenerator;
|
||||
use Ramsey\Uuid\Generator\RandomGeneratorFactory;
|
||||
use Ramsey\Uuid\Generator\RandomGeneratorInterface;
|
||||
use Ramsey\Uuid\Guid\Guid;
|
||||
use Ramsey\Uuid\Math\BrickMathCalculator;
|
||||
use Ramsey\Uuid\Provider\Time\FixedTimeProvider;
|
||||
use Ramsey\Uuid\Rfc4122\FieldsInterface;
|
||||
use Ramsey\Uuid\Type\Time;
|
||||
@@ -1408,14 +1407,13 @@ class UuidTest extends TestCase
|
||||
{
|
||||
$numberConverter = new BigNumberConverter();
|
||||
$timeConverter = Mockery::mock(TimeConverterInterface::class);
|
||||
$calculator = new BrickMathCalculator();
|
||||
|
||||
$timeConverter
|
||||
->shouldReceive('convertTime')
|
||||
->once()
|
||||
->andReturn('foobar');
|
||||
|
||||
$builder = new DefaultUuidBuilder($numberConverter, $timeConverter, $calculator);
|
||||
$builder = new DefaultUuidBuilder($numberConverter, $timeConverter);
|
||||
$codec = new StringCodec($builder);
|
||||
|
||||
$factory = new UuidFactory();
|
||||
|
||||
Reference in New Issue
Block a user