Skip to content

Commit a5e2f67

Browse files
committed
Remove proxies from serializable data
1 parent ee37736 commit a5e2f67

File tree

2 files changed

+8
-62
lines changed

2 files changed

+8
-62
lines changed

bench/src/Serializers/MapperBenchmark.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
1010
use Symfony\Component\Cache\Psr16Cache;
1111
use TypeLang\Mapper\Bench\Stub\ExampleRequestDTO;
12+
use TypeLang\Mapper\Mapper;
1213

1314
abstract class MapperBenchmark
1415
{
@@ -40,6 +41,12 @@ abstract class MapperBenchmark
4041

4142
protected function prepare(): void
4243
{
44+
$mapperFilename = new \ReflectionClass(Mapper::class)
45+
->getFileName();
46+
$mapperDirectory = \dirname($mapperFilename);
47+
48+
require_once $mapperDirectory . '/helpers.php';
49+
4350
$this->denormalized = new ExampleRequestDTO(
4451
name: 'Example1',
4552
items: [
@@ -79,5 +86,6 @@ protected function createPsr16Cache(string $namespace): CacheInterface
7986
}
8087

8188
abstract public function benchNormalization(): void;
89+
8290
abstract public function benchDenormalization(): void;
8391
}

src/Mapping/Provider/MetadataBuilder.php

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -72,68 +72,6 @@ private function now(): ?int
7272
*/
7373
public function getClassMetadata(\ReflectionClass $class, BuildingContext $context): ClassMetadata
7474
{
75-
if (\PHP_VERSION_ID >= 80400) {
76-
/** @var ClassMetadata<TArg> */
77-
return $this->toProxyClassMetadata($class, $context);
78-
}
79-
80-
/** @var ClassMetadata<TArg> */
81-
return $this->toLazyInitializedClassMetadata($class, $context);
82-
}
83-
84-
/**
85-
* @template TArg of object
86-
*
87-
* @param \ReflectionClass<TArg> $class
88-
*
89-
* @return ClassMetadata<TArg>
90-
* @throws \Throwable
91-
*/
92-
private function toProxyClassMetadata(\ReflectionClass $class, BuildingContext $context): ClassMetadata
93-
{
94-
/** @var ClassMetadata<TArg> */
95-
return $this->metadata[$class->name] ??=
96-
(new \ReflectionClass(ClassMetadata::class))
97-
->newLazyProxy(function () use ($class, $context): ClassMetadata {
98-
$info = $this->reader->read($class);
99-
100-
$metadata = new ClassMetadata(
101-
name: $info->name,
102-
properties: $this->toPropertiesMetadata(
103-
class: $class,
104-
parent: $info,
105-
properties: $info->properties,
106-
context: $context,
107-
),
108-
discriminator: $this->toOptionalDiscriminator(
109-
class: $class,
110-
parent: $info,
111-
info: $info->discriminator,
112-
context: $context,
113-
),
114-
isNormalizeAsArray: $info->isNormalizeAsArray,
115-
typeErrorMessage: $info->typeErrorMessage,
116-
createdAt: $this->now(),
117-
);
118-
119-
unset($this->metadata[$class->name]);
120-
121-
return $metadata;
122-
});
123-
}
124-
125-
/**
126-
* @template TArg of object
127-
*
128-
* @param \ReflectionClass<TArg> $class
129-
*
130-
* @return ClassMetadata<TArg>
131-
* @throws \Throwable
132-
*/
133-
private function toLazyInitializedClassMetadata(
134-
\ReflectionClass $class,
135-
BuildingContext $context
136-
): ClassMetadata {
13775
if (isset($this->metadata[$class->name])) {
13876
/** @var ClassMetadata<TArg> */
13977
return $this->metadata[$class->name];

0 commit comments

Comments
 (0)