1. Go to this page and download the library: Download winwin/mapper-generator 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/ */
winwin / mapper-generator example snippets
class CarType extends \kuiper\helper\Enum {
public const SUV = 'suv';
public const MINI = 'mini';
}
class Car {
/**
* @var string|null
*/
private $make;
/**
* @var int|null
*/
private $numberOfSeats;
/**
* @var CarType|null
*/
private $type;
//constructor, getters, setters etc.
}
class CarDto {
/**
* @var string|null
*/
private $make;
/**
* @var int|null
*/
private $seatCount;
/**
* @var string|null
*/
private $type;
//constructor, getters, setters etc.
}
use winwin\mapper\annotations\Mapper;
use winwin\mapper\annotations\Mapping;
/**
* @Mapper
*/
class CarMapper
{
/**
* @Mapping(target="seatCount", source="numberOfSeats")
*/
public function carToCarDto(\Car $car) : \CarDto
{
}
}
use winwin\mapper\annotations\Mapper;
use winwin\mapper\annotations\Mapping;
/**
* @Mapper
*/
class CarMapper
{
/**
* @Mapping(target="seatCount", source="numberOfSeats")
*/
public function carToCarDto(\Car $car) : \CarDto
{
$carDto = new \CarDto();
$carDto->setMake($car->getMake());
$carDto->setSeatCount($car->getNumberOfSeats());
$carDto->setType($car->getType() === null ? null : $car->getType()->name);
return $carDto;
}
}
public function toCarDto(Car $car): CarDto
{
}
/**
* @MappingSource("car")
*/
public function toCarDto(Car $car, $arg1, $arg2): CarDto
{
}
/**
* @MappingTarget("dto")
*/
public function updateCarDto(Car $car, CarDto $dto): void
{
}
/**
* @MappingSource("car")
* @MappingTarget("dto")
*/
public function updateCarDto(Car $car, CarDto $dto, $arg1, $arg2): void
{
}
class CarMapper
{
/**
* @Mapping(target="seatCount", source="numberOfSeats")
*/
public function carToCarDto(\Car $car) : \CarDto
{
}
/**
* @InheritConfiguration("carToCarDto")
*/
public function updateCarDto(\Car $car, \CarDto $carDto): void
{
}
}
class CarMapper
{
/**
* @Mapping(target="seatCount", source="numberOfSeats")
*/
public function carToCarDto(\Car $car) : \CarDto
{
}
/**
* @InheritInverseConfiguration("carToCarDto")
*/
public function carDtoToCar(\CarDto $carDto): \Car
{
}
}
class CarMapper
{
/**
* @Mapping(target="large", expression="$car->getNumberOfSeats()>20")
*/
public function carToCarDto(\Car $car) : \CarDto
{
}
}
class CarMapper
{
/**
* @Mapping(target="large", source="numberOfSeats", qualifiedByName="isLarge")
*/
public function carToCarDto(\Car $car) : \CarDto
{
}
private function isLarge(int $numberOfSeats): bool
{
return $numberOfSeats > 20;
}
}
class CarMapper
{
/**
* @Mapping(target="seatCount", source="numberOfSeats", condition="> 0")
*/
public function carToCarDto(\Car $car) : \CarDto
{
}
}