Skip to main content

Configuration

Configuring PHP AutoMapper involves creating a MapperConfiguration instance and defining mappings between source and destination classes. Here's a basic example:

<?php

use Backbrain\Automapper\Contract\Builder\Options;
use Backbrain\Automapper\Contract\Builder\Config;
use Backbrain\Automapper\MapperConfiguration;

class SourceClass {
public string $property;
}

class DestinationClass {
public string $property;
}

$config = new MapperConfiguration(fn (Config $config) => $config
->createMap(SourceClass::class, DestinationClass::class)
);

$autoMapper = $config->createMapper();

In this example, we're creating a mapping between SourceClass and DestinationClass. The createMap method is used to define this mapping.

Customizing Property Mapping​

You can customize how individual properties are mapped using the forMember method. Here's an example:

$config = new MapperConfiguration(fn (Config $config) => $config
->createMap(SourceClass::class, DestinationClass::class)
->forMember(
'property',
fn (Options $opts) => $opts->mapFrom(
fn (SourceClass $source) => $source->property . ' custom'
)
)
);

In this example, we're appending the string ' custom' to the property of SourceClass when it's mapped to DestinationClass.

Creating the AutoMapper Instance​

Once you've defined your mappings, you can create an AutoMapper instance using the createMapper method:

$autoMapper = $config->createMapper();

This AutoMapper instance can then be used to map objects as per the defined mappings.