Skip to content

Commit

Permalink
Make ClassDiscriminatorResolver optional (#130)
Browse files Browse the repository at this point in the history
`symfony/serializer` should not be required when installing AutoMapper,
so with this PR I make the `ClassDiscriminatorResolver` optional within
the bundle so we can install it without the Serializer installed.

Will fix a part of #127, but not everything.
  • Loading branch information
Korbeil committed May 14, 2024
2 parents 290b700 + 0d55e4c commit cc8ba91
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 5 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Fixes
- [GH#131](https://github.com/jolicode/automapper/pull/131) Require mandatory packages
- [GH#132](https://github.com/jolicode/automapper/pull/132) Use DI Extension class instead of deprecated HttpKernel Extension
- [GH#130](https://github.com/jolicode/automapper/pull/130) Make ClassDiscriminatorResolver optional

## [9.0.1] - 2024-05-10
### Fixes
Expand Down
8 changes: 8 additions & 0 deletions src/Symfony/Bundle/Resources/config/event_serializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
use AutoMapper\EventListener\Symfony\SerializerGroupListener;
use AutoMapper\EventListener\Symfony\SerializerIgnoreListener;
use AutoMapper\EventListener\Symfony\SerializerMaxDepthListener;
use AutoMapper\Generator\Shared\ClassDiscriminatorResolver;
use Symfony\Component\Serializer\Mapping\ClassDiscriminatorFromClassMetadata;

return static function (ContainerConfigurator $container) {
$container->services()
Expand All @@ -22,5 +24,11 @@
->set(SerializerIgnoreListener::class)
->args([service('serializer.mapping.class_metadata_factory')])
->tag('kernel.event_listener', ['event' => PropertyMetadataEvent::class, 'priority' => -64])

->set(ClassDiscriminatorResolver::class)
->args([service('automapper.mapping.class_discriminator_from_class_metadata')])

->set('automapper.mapping.class_discriminator_from_class_metadata', ClassDiscriminatorFromClassMetadata::class)
->args([service('serializer.mapping.class_metadata_factory')])
;
};
6 changes: 1 addition & 5 deletions src/Symfony/Bundle/Resources/config/generator.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
use AutoMapper\Configuration;
use AutoMapper\Generator\MapperGenerator;
use AutoMapper\Generator\Shared\ClassDiscriminatorResolver;
use Symfony\Component\Serializer\Mapping\ClassDiscriminatorFromClassMetadata;

return static function (ContainerConfigurator $container) {
$container->services()
Expand All @@ -19,9 +18,6 @@
])

->set(ClassDiscriminatorResolver::class)
->args([service('automapper.mapping.class_discriminator_from_class_metadata')])

->set('automapper.mapping.class_discriminator_from_class_metadata', ClassDiscriminatorFromClassMetadata::class)
->args([service('serializer.mapping.class_metadata_factory')])
->args([null])
;
};

0 comments on commit cc8ba91

Please sign in to comment.