PHP code example of emreuyguc / structured-mapper-bundle
1. Go to this page and download the library: Download emreuyguc/structured-mapper-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
emreuyguc / structured-mapper-bundle example snippets
public function __construct(private readonly StructuredMapper $mapper)
{
}
use Euu\Bundle\StructuredMapperBundle\StructuredMapper\StructuredMapper;
$mapper = $container->get('structured_mapper');
$inputDto = new InputDto();
$mapper->map(sourceObject: $source, targetClass: MyEntity::class, context: [
//object mapper context parameters..
]);
#[MapTo(
ProductEntity::class,
mappings: [
new Mapping('productCode', 'productNumber'),
new Mapping('barcode', 'barcodeNumber')
],
mapperContext: [
ObjectMapper::SKIP_NULL_VALUES => true,
ObjectMapper::ALLOW_AUTO_MAPPING => false,
ObjectMapper::TYPE_ENFORCEMENT => false
])]
class ProductDto{
class StockDto
{
#[OnMapTo(StockEntity::class, targetPath: 'stock')]
public ?int $stockCount = null;
#[OnMapTo(StockEntity::class, targetPath: 'warehouse')]
public ?string $stockWarehouse = null;
}
#[OnMapTo(ProductEntity::class, targetPath: 'owner.fullName')]
public string $ownerName;
#[MapTo(
ProductEntity::class,
mappings: [
new Mapping('stock.stockWarehouse', 'stockWarehouse')
])]
class ProductDto
{
#[OnMapTo(
targetClass: ProductEntity::class,
transformerMeta: new WithMapper(targetClass: StockEntity::class)
)]
public StockDto $stock;
#[OnMapTo(ProductEntity::class, transformerMeta: new ArrayItemTransform(
itemTransformerMeta: new WithMapper(targetClass: SellerEntity::class)
))]
public array $sellers;
#[MapTo(
ProductEntity::class,
mappings: [
new Mapping(['sku', 'code'], 'productCode', new ImplodeTransform('-')),
])]
#[OnMapTo(ProductEntity::class, targetPath: 'model', transformerMeta: new ExplodeTransform('-', 1, 2))]
#[OnMapTo(ProductEntity::class, targetPath: 'brand', transformerMeta: new ExplodeTransform('-', 0, 2))]
public string $brandModel;
#[OnMapTo(ProductEntity::class, targetPath: 'unit', transformerMeta: new EnumTransform(UnitType::class))]
public string $unit;
#[OnMapTo(ProductEntity::class, targetPath: 'taxGroup', transformerMeta: new EntityResolve(TaxGroup::class))]
public string $sellTaxGroupId;
#[OnMapTo(
ProductEntity::class,
targetPath: 'subCategories',
transformerMeta: new ArrayItemTransform(
itemTransformerMeta: new EntityResolve(SubCategoryEntity::class),
transformerContext: [
ArrayItemTransformer::USE_ADD_METHOD => 'addSubCategory',
ArrayItemTransformer::CLEAR_METHOD => 'subCategories.clear()',
ArrayItemTransformer::CLEAR_EXPRESSION => "'update' in context['groups']"
]
)
)]
public array $subCategoryIds;
public const SKIP_NULL_VALUES = 'skip_null_values';
public const TO_POPULATE = 'to_populate';
public const ALLOW_AUTO_MAPPING = 'allow_auto_mapping';
public const GROUPS = 'groups';
public const AUTO_SUB_MAPPING = 'auto_sub_mapping';
public const TYPE_ENFORCEMENT = 'type_enforcement';
public const ARRAY_ADD_METHOD = 'array_add_method';
public const ARRAY_CLEAR_METHOD = 'array_clear_method';
public const ARRAY_CLEAR_EXPRESSION = 'array_clear_expression';
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.