| @@ 17-40 (lines=24) @@ | ||
| 14 | use NilPortugues\Serializer\Serializer\InternalClasses\DateTimeZoneSerializer; |
|
| 15 | use ReflectionClass; |
|
| 16 | ||
| 17 | final class DateTimeImmutableSerializer |
|
| 18 | { |
|
| 19 | /** |
|
| 20 | * @param Serializer $serializer |
|
| 21 | * @param string $className |
|
| 22 | * @param array $value |
|
| 23 | * |
|
| 24 | * @return object |
|
| 25 | */ |
|
| 26 | public static function unserialize(Serializer $serializer, $className, array $value) |
|
| 27 | { |
|
| 28 | $dateTimeZone = DateTimeZoneSerializer::unserialize( |
|
| 29 | $serializer, |
|
| 30 | 'DateTimeZone', |
|
| 31 | array($serializer->unserialize($value['data']['timezone'])) |
|
| 32 | ); |
|
| 33 | ||
| 34 | $ref = new ReflectionClass($className); |
|
| 35 | ||
| 36 | return $ref->newInstanceArgs( |
|
| 37 | array($serializer->unserialize($value['data']['date']), $dateTimeZone) |
|
| 38 | ); |
|
| 39 | } |
|
| 40 | } |
|
| 41 | ||
| @@ 17-40 (lines=24) @@ | ||
| 14 | use NilPortugues\Serializer\Serializer\InternalClasses\DateTimeZoneSerializer; |
|
| 15 | use ReflectionClass; |
|
| 16 | ||
| 17 | final class DateTimeSerializer |
|
| 18 | { |
|
| 19 | /** |
|
| 20 | * @param Serializer $serializer |
|
| 21 | * @param string $className |
|
| 22 | * @param array $value |
|
| 23 | * |
|
| 24 | * @return object |
|
| 25 | */ |
|
| 26 | public static function unserialize(Serializer $serializer, $className, array $value) |
|
| 27 | { |
|
| 28 | $dateTimeZone = DateTimeZoneSerializer::unserialize( |
|
| 29 | $serializer, |
|
| 30 | 'DateTimeZone', |
|
| 31 | array($serializer->unserialize($value['timezone'])) |
|
| 32 | ); |
|
| 33 | ||
| 34 | $ref = new ReflectionClass($className); |
|
| 35 | ||
| 36 | return $ref->newInstanceArgs( |
|
| 37 | array($serializer->unserialize($value['date']), $dateTimeZone) |
|
| 38 | ); |
|
| 39 | } |
|
| 40 | } |
|
| 41 | ||