silpo-tech / mapper-bundle
Symfony mapper bundle, easy way to convert data.
v1.1.1
2026-03-31 13:13 UTC
Requires
- php: >=8.0
- mark-gerarts/auto-mapper-plus: ^1.4.2
- mark-gerarts/automapper-plus-bundle: ^1.5.0
- phpdocumentor/reflection-docblock: ^5.6
- symfony/dependency-injection: ^6.0|^7.0
- symfony/property-info: ^6.0|^7.0
- symfony/validator: ^6.0|^7.0
Requires (Dev)
- doctrine/doctrine-bundle: ^2.12
- doctrine/orm: *
- friendsofphp/php-cs-fixer: ^3.0
- jolicode/automapper: ^9.5
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.5
- symfony/http-kernel: 6.0|^7.0
- symfony/yaml: *
Suggests
- jolicode/automapper: Alternative high-performance automapper library (configure via mapper.automapper: jolicode)
README
Installation
The suggested installation method's via composer:
composer require silpo-tech/mapper-bundle
Setup
Register bundle in bundles.php file.
<?php return [ MapperBundle\MapperBundle::class => ['all' => true], AutoMapperPlus\AutoMapperPlusBundle\AutoMapperPlusBundle::class => ['all' => true] ];
Configure mappings
# this config only applies to the services created by this file _instanceof: AutoMapperPlus\AutoMapperPlusBundle\AutoMapperConfiguratorInterface: tags: ['automapper_plus.configurator'] # and add to override implementation of AutoMapperConfig automapper_plus.configuration: class: MapperBundle\Configuration\AutoMapperConfig
Tests
composer test:run
AutoMapper Library Configuration
MapperBundle supports two automapper libraries:
- AutoMapperPlus (default) - mark-gerarts/auto-mapper-plus
- JoliCode AutoMapper - jolicode/automapper
Using AutoMapperPlus (Default)
No additional configuration needed. AutoMapperPlus is used by default.
Using JoliCode AutoMapper
- Install JoliCode AutoMapper:
composer require jolicode/automapper
- Register the JoliCode AutoMapper bundle in
config/bundles.php:
<?php return [ MapperBundle\MapperBundle::class => ['all' => true], AutoMapper\Symfony\Bundle\AutoMapperBundle::class => ['all' => true], ];
- Configure MapperBundle to use JoliCode in
config/packages/mapper.yaml:
mapper: automapper: jolicode
Feature Compatibility
| Feature | AutoMapperPlus | JoliCode AutoMapper |
|---|---|---|
| Basic mapping | ✅ | ✅ |
| Collection mapping | ✅ | ✅ |
| Array to object | ✅ | ✅ |
| Object to array | ✅ | ✅ |
| PreLoader (usePreLoad) | ✅ | ❌ |
| Custom PropertyAccessors | ✅ | ❌ |
| Auto-configuration | ✅ | ✅ (native) |
Note: Custom features like usePreLoad and custom PropertyAccessors (DoctrineProxyPropertyAccessor, MergePropertyAccessor) are only available when using AutoMapperPlus. JoliCode AutoMapper uses its own native features for similar functionality.