1. Go to this page and download the library: Download ehyiah/mapping-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/ */
// src/DTO/MyAwesomeDTO
use App\src\Entity;
use Ehyiah\MappingBundle\Attributes;
#[MappingAware(target: MyAwesomeEntity::class)]
class MyAwesomeDTO
{
#[MappingAware]
public string $text
#[MappingAware(target: 'aBooleanProperty')]
public bool $active
#[MappingAware(target: 'address.zipcode')]
public bool $zipcode
#[MappingAware(target: 'address.street')]
public bool $street
}
use App\src\Entity\MyAwesomeEntity;
use App\src\DTO\MyAwesomeDTO;
use Ehyiah\MappingBundle\Attributes;
use Ehyiah\MappingBundle\MappingServiceInterface;
class SomeUsefulServiceOrHandlerOrController
{
public function __construct(
private MappingServiceInterface $mappingService,
) {
}
public function handle()
{
$entity = new MyAwesomeEntity();
$dto = new MyAwesomeDTO();
$this->mappingService->mapToTarget($dto, $entity);
$this->mappingService->mapFromTarget($entity, $dto);
}
}
// src/DTO/MySourceObject
use Ehyiah\MappingBundle\Attributes;
#[MappingAware(target: MyTargetObject::class)]
class MySourceObject
{
#[MappingAware(transformer: \Ehyiah\MappingBundle\Transformer\DateTimeTransformer::class, options: ['option1' => 'value1'])]
public string $date
}
// src/DTO/MyTargetObject
class MyTargetObject
{
public DateTime $date
}
$text
timezone
timezone
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.