Skip to content

Commit

Permalink
Merge acbb415 into f73d37f
Browse files Browse the repository at this point in the history
  • Loading branch information
mhujer committed Nov 27, 2018
2 parents f73d37f + acbb415 commit 8401ca1
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 19 deletions.
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -69,6 +69,7 @@ Changelog

## 3.0.0 (2018-XX-XX)
- [#6](../../pull/6) dropped support for PHP 7.1 as it is no longer supported
- [#7](../../pull/7) Require `jms/serializer` 2.0

## 2.0.0 (2018-01-05)
- [#3](../../pull/3) require PHP 7.1, potential BC breaks because of added type-hints
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Expand Up @@ -18,7 +18,7 @@
],
"require": {
"php": "~7.2",
"jms/serializer": "^1.2",
"jms/serializer": "~2.0",
"ramsey/uuid": "~3.0"
},
"require-dev": {
Expand Down
28 changes: 12 additions & 16 deletions src/Uuid/UuidSerializerHandler.php
Expand Up @@ -4,11 +4,11 @@

namespace Mhujer\JmsSerializer\Uuid;

use JMS\Serializer\AbstractVisitor;
use JMS\Serializer\Context;
use JMS\Serializer\GraphNavigator;
use JMS\Serializer\GraphNavigatorInterface;
use JMS\Serializer\Metadata\PropertyMetadata;
use JMS\Serializer\VisitorInterface;
use JMS\Serializer\Visitor\DeserializationVisitorInterface;
use JMS\Serializer\Visitor\SerializationVisitorInterface;
use Ramsey\Uuid\Uuid;
use Ramsey\Uuid\UuidInterface;

Expand All @@ -32,13 +32,13 @@ public static function getSubscribingMethods(): array
$methods = [];
foreach ($formats as $format) {
$methods[] = [
'direction' => GraphNavigator::DIRECTION_SERIALIZATION,
'direction' => GraphNavigatorInterface::DIRECTION_SERIALIZATION,
'type' => self::TYPE_UUID,
'format' => $format,
'method' => 'serializeUuid',
];
$methods[] = [
'direction' => GraphNavigator::DIRECTION_DESERIALIZATION,
'direction' => GraphNavigatorInterface::DIRECTION_DESERIALIZATION,
'type' => self::TYPE_UUID,
'format' => $format,
'method' => 'deserializeUuid',
Expand All @@ -49,19 +49,19 @@ public static function getSubscribingMethods(): array
}

/**
* @param \JMS\Serializer\VisitorInterface $visitor
* @param \JMS\Serializer\Visitor\DeserializationVisitorInterface $visitor
* @param mixed $data
* @param mixed[] $type
* @param \JMS\Serializer\Context $context
* @return \Ramsey\Uuid\UuidInterface
*/
public function deserializeUuid(VisitorInterface $visitor, $data, array $type, Context $context): UuidInterface
public function deserializeUuid(DeserializationVisitorInterface $visitor, $data, array $type, Context $context): UuidInterface
{
try {
return $this->deserializeUuidValue((string) $data);
} catch (\Mhujer\JmsSerializer\Uuid\InvalidUuidException $e) {
throw new \Mhujer\JmsSerializer\Uuid\DeserializationInvalidValueException(
$this->getFieldPath($visitor, $context),
$this->getFieldPath($context),
$e
);
}
Expand All @@ -76,26 +76,22 @@ private function deserializeUuidValue(string $uuidString): UuidInterface
}

/**
* @param \JMS\Serializer\VisitorInterface $visitor
* @param \JMS\Serializer\Visitor\SerializationVisitorInterface $visitor
* @param \Ramsey\Uuid\UuidInterface $uuid
* @param mixed[] $type
* @param \JMS\Serializer\Context $context
* @return string|object
*/
public function serializeUuid(VisitorInterface $visitor, UuidInterface $uuid, array $type, Context $context)
public function serializeUuid(SerializationVisitorInterface $visitor, UuidInterface $uuid, array $type)
{
return $visitor->visitString($uuid->toString(), $type, $context);
return $visitor->visitString($uuid->toString(), $type);
}

private function getFieldPath(VisitorInterface $visitor, Context $context): string
private function getFieldPath(Context $context): string
{
$path = '';
foreach ($context->getMetadataStack() as $element) {
if ($element instanceof PropertyMetadata) {
$name = ($element->serializedName !== null) ? $element->serializedName : $element->name;
if ($visitor instanceof AbstractVisitor) {
$name = $visitor->getNamingStrategy()->translateName($element);
}

$path = $name . self::PATH_FIELD_SEPARATOR . $path;
}
Expand Down
4 changes: 2 additions & 2 deletions tests/Uuid/UuidSerializerHandlerTest.php
Expand Up @@ -5,8 +5,8 @@
namespace Mhujer\JmsSerializer\Uuid;

use JMS\Serializer\Handler\HandlerRegistry;
use JMS\Serializer\Serializer;
use JMS\Serializer\SerializerBuilder;
use JMS\Serializer\SerializerInterface;
use Ramsey\Uuid\Uuid;

class UuidSerializerHandlerTest extends \PHPUnit\Framework\TestCase
Expand Down Expand Up @@ -92,7 +92,7 @@ public function testDeserializeInvalidUuid(): void
}
}

private function getSerializer(): Serializer
private function getSerializer(): SerializerInterface
{
return SerializerBuilder::create()
->configureHandlers(function (HandlerRegistry $registry): void {
Expand Down

0 comments on commit 8401ca1

Please sign in to comment.