Library for getting Data Transfer Object from a database through Doctrine. If you are using a service approach to development, this library can be useful for you.
Single dependency: Doctrine orm library Also you need to have PHP >= 5.3
The simplest way to add DoctrineDto is execute command:
composer require "konstantin-kuklin/doctrine-dto" "dev-master"
Initialize Dto -> Entity class map:
// static map rules here:
$map = new Map(
array(
'Path\To\UserEntity' => 'Path\To\UserDto',
'Path\To\AnotherEntity' => 'Path\To\AnotherDto'
)
);
// class to dynamic class map generation
$map->addMapGeneratorElement(new EntityDtoSimpleGenerator());
// set class map
DtoClassMap::setMap($map, $map->getFlippedMap());
Add custom hydrator in your code with such example:
$em->getConfiguration()->addCustomHydrationMode('DtoHydrator', 'KonstantinKuklin\DoctrineDto\Hydrator\DtoHydrator');
$query = $em->createQuery('SELECT u FROM CmsUser u');
$results = $query->getResult('DtoHydrator');
For using with Symfony framework go to DoctrineDtoBundle.