Skip to content

Commit 2eb17a9

Browse files
authored
Merge pull request #40 from rekalogika:chore/cleanup
chore: Cleanup classes
2 parents 3023390 + 8bcb89c commit 2eb17a9

12 files changed

+42
-20
lines changed

src/Debug/MapperDataCollector.php

+12-1
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@
1818
use Symfony\Bundle\FrameworkBundle\DataCollector\AbstractDataCollector;
1919
use Symfony\Component\HttpFoundation\Request;
2020
use Symfony\Component\HttpFoundation\Response;
21+
use Symfony\Contracts\Service\ResetInterface;
2122

2223
/**
2324
* @internal
2425
*/
25-
final class MapperDataCollector extends AbstractDataCollector
26+
final class MapperDataCollector extends AbstractDataCollector implements ResetInterface
2627
{
2728
public function getName(): string
2829
{
@@ -135,4 +136,14 @@ public function getTotalTime(): float
135136
$this->getMappings()
136137
));
137138
}
139+
140+
public function reset(): void
141+
{
142+
$this->data = [];
143+
$this->totalMappings = null;
144+
$this->totalMappingsIncludingSubMappings = null;
145+
$this->totalTime = null;
146+
147+
parent::reset();
148+
}
138149
}

src/Debug/TraceableMappingFactory.php

+7-1
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,12 @@
1515

1616
use Rekalogika\Mapper\Mapping\Mapping;
1717
use Rekalogika\Mapper\Mapping\MappingFactoryInterface;
18+
use Symfony\Contracts\Service\ResetInterface;
1819

1920
/**
2021
* @internal
2122
*/
22-
final class TraceableMappingFactory implements MappingFactoryInterface
23+
final class TraceableMappingFactory implements MappingFactoryInterface, ResetInterface
2324
{
2425
private bool $mappingCollected = false;
2526

@@ -29,6 +30,11 @@ public function __construct(
2930
) {
3031
}
3132

33+
public function reset(): void
34+
{
35+
$this->mappingCollected = false;
36+
}
37+
3238
public function getMapping(): Mapping
3339
{
3440
if ($this->mappingCollected) {

src/Debug/TraceableTransformer.php

+4-9
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ final class TraceableTransformer extends AbstractTransformerDecorator implements
3333
{
3434
use MainTransformerAwareTrait;
3535

36-
private bool $withMainTransformerCalled = false;
37-
3836
public function __construct(
3937
private TransformerInterface $decorated,
4038
private MapperDataCollector $dataCollector
@@ -48,17 +46,14 @@ public function getDecorated(): TransformerInterface
4846

4947
public function withMainTransformer(MainTransformerInterface $mainTransformer): static
5048
{
51-
if ($this->withMainTransformerCalled) {
49+
if (!$this->decorated instanceof MainTransformerAwareInterface) {
5250
return $this;
5351
}
5452

55-
$this->withMainTransformerCalled = true;
56-
57-
if ($this->decorated instanceof MainTransformerAwareInterface) {
58-
$this->decorated = $this->decorated->withMainTransformer($mainTransformer);
59-
}
53+
$clone = clone $this;
54+
$clone->decorated = $this->decorated->withMainTransformer($mainTransformer);
6055

61-
return $this;
56+
return $clone;
6257
}
6358

6459
public function transform(

src/MainTransformer/Implementation/MainTransformer.php

+7-1
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,12 @@
3434
use Rekalogika\Mapper\Util\TypeCheck;
3535
use Rekalogika\Mapper\Util\TypeGuesser;
3636
use Symfony\Component\PropertyInfo\Type;
37+
use Symfony\Contracts\Service\ResetInterface;
3738

3839
/**
3940
* @internal
4041
*/
41-
final class MainTransformer implements MainTransformerInterface
42+
final class MainTransformer implements MainTransformerInterface, ResetInterface
4243
{
4344
public static int $manualGcInterval = 500;
4445
private static int $runCounter = 1;
@@ -51,6 +52,11 @@ public function __construct(
5152
) {
5253
}
5354

55+
public function reset(): void
56+
{
57+
self::$runCounter = 1;
58+
}
59+
5460
private function processTransformer(
5561
TransformerInterface $transformer
5662
): TransformerInterface {

src/ObjectCache/Implementation/ObjectCacheFactory.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
use Rekalogika\Mapper\ObjectCache\ObjectCacheFactoryInterface;
1818
use Rekalogika\Mapper\TypeResolver\TypeResolverInterface;
1919

20-
final class ObjectCacheFactory implements ObjectCacheFactoryInterface
20+
final readonly class ObjectCacheFactory implements ObjectCacheFactoryInterface
2121
{
2222
public function __construct(
2323
private TypeResolverInterface $typeResolver

src/Proxy/ProxyNamer.php

+5-1
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,12 @@
1616
/**
1717
* @internal
1818
*/
19-
class ProxyNamer
19+
final readonly class ProxyNamer
2020
{
21+
public function __construct()
22+
{
23+
}
24+
2125
/**
2226
* @param class-string $class
2327
*/

src/Serializer/DenormalizerContext.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@
1717
* @deprecated
1818
* @phpstan-ignore-next-line
1919
*/
20-
class DenormalizerContext extends AbstractSerializerContext
20+
final class DenormalizerContext extends AbstractSerializerContext
2121
{
2222
}

src/Serializer/NormalizerContext.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@
1717
* @deprecated
1818
* @phpstan-ignore-next-line
1919
*/
20-
class NormalizerContext extends AbstractSerializerContext
20+
final class NormalizerContext extends AbstractSerializerContext
2121
{
2222
}

src/Transformer/Util/ReaderWriter.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
/**
2727
* @internal
2828
*/
29-
class ReaderWriter
29+
final readonly class ReaderWriter
3030
{
3131
/**
3232
* @throws UninitializedSourcePropertyException

src/Util/TypeCheck.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
use Rekalogika\Mapper\Transformer\MixedType;
1818
use Symfony\Component\PropertyInfo\Type;
1919

20-
final class TypeCheck
20+
final readonly class TypeCheck
2121
{
2222
private function __construct()
2323
{

src/Util/TypeGuesser.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use Rekalogika\Mapper\Exception\InvalidArgumentException;
1717
use Symfony\Component\PropertyInfo\Type;
1818

19-
final class TypeGuesser
19+
final readonly class TypeGuesser
2020
{
2121
private function __construct()
2222
{

src/Util/TypeUtil.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
use Rekalogika\Mapper\TypeResolver\Implementation\TypeResolver;
2525
use Symfony\Component\PropertyInfo\Type;
2626

27-
final class TypeUtil
27+
final readonly class TypeUtil
2828
{
2929
private function __construct()
3030
{

0 commit comments

Comments
 (0)