mirror of
https://github.com/ramsey/uuid.git
synced 2026-06-16 16:17:43 +03:00
Fix collection deserialization errors
This commit is contained in:
@@ -16,6 +16,13 @@ namespace Ramsey\Uuid\Builder;
|
||||
|
||||
use Ramsey\Collection\AbstractCollection;
|
||||
use Ramsey\Collection\CollectionInterface;
|
||||
use Ramsey\Uuid\Converter\Number\GenericNumberConverter;
|
||||
use Ramsey\Uuid\Converter\Time\GenericTimeConverter;
|
||||
use Ramsey\Uuid\Converter\Time\PhpTimeConverter;
|
||||
use Ramsey\Uuid\Guid\GuidBuilder;
|
||||
use Ramsey\Uuid\Math\BrickMathCalculator;
|
||||
use Ramsey\Uuid\Nonstandard\UuidBuilder as NonstandardUuidBuilder;
|
||||
use Ramsey\Uuid\Rfc4122\UuidBuilder as Rfc4122UuidBuilder;
|
||||
use Traversable;
|
||||
|
||||
/**
|
||||
@@ -37,4 +44,30 @@ class BuilderCollection extends AbstractCollection implements CollectionInterfac
|
||||
{
|
||||
return parent::getIterator();
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-constructs the object from its serialized form
|
||||
*
|
||||
* @param string $serialized The serialized PHP string to unserialize into
|
||||
* a UuidInterface instance
|
||||
*
|
||||
* @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint
|
||||
*/
|
||||
public function unserialize($serialized): void
|
||||
{
|
||||
/** @var mixed[] $data */
|
||||
$data = unserialize($serialized, [
|
||||
'allowed_classes' => [
|
||||
BrickMathCalculator::class,
|
||||
GenericNumberConverter::class,
|
||||
GenericTimeConverter::class,
|
||||
GuidBuilder::class,
|
||||
NonstandardUuidBuilder::class,
|
||||
PhpTimeConverter::class,
|
||||
Rfc4122UuidBuilder::class,
|
||||
],
|
||||
]);
|
||||
|
||||
$this->data = $data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ namespace Ramsey\Uuid\Provider\Node;
|
||||
use Ramsey\Collection\AbstractCollection;
|
||||
use Ramsey\Collection\CollectionInterface;
|
||||
use Ramsey\Uuid\Provider\NodeProviderInterface;
|
||||
use Ramsey\Uuid\Type\Hexadecimal;
|
||||
|
||||
/**
|
||||
* A collection of NodeProviderInterface objects
|
||||
@@ -27,4 +28,27 @@ class NodeProviderCollection extends AbstractCollection implements CollectionInt
|
||||
{
|
||||
return NodeProviderInterface::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-constructs the object from its serialized form
|
||||
*
|
||||
* @param string $serialized The serialized PHP string to unserialize into
|
||||
* a UuidInterface instance
|
||||
*
|
||||
* @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint
|
||||
*/
|
||||
public function unserialize($serialized): void
|
||||
{
|
||||
/** @var mixed[] $data */
|
||||
$data = unserialize($serialized, [
|
||||
'allowed_classes' => [
|
||||
Hexadecimal::class,
|
||||
RandomNodeProvider::class,
|
||||
StaticNodeProvider::class,
|
||||
SystemNodeProvider::class,
|
||||
],
|
||||
]);
|
||||
|
||||
$this->data = $data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -291,6 +291,7 @@ class Uuid implements UuidInterface
|
||||
$this->codec = $uuid->codec;
|
||||
$this->numberConverter = $uuid->numberConverter;
|
||||
$this->fields = $uuid->fields;
|
||||
$this->timeConverter = $uuid->timeConverter;
|
||||
}
|
||||
|
||||
public function compareTo(UuidInterface $other): int
|
||||
|
||||
Reference in New Issue
Block a user