Skip to content

KonstantinKuklin/DoctrineDto

Repository files navigation

DoctrineDto

Build Status Scrutinizer Code Quality Code Coverage GitHub release Total Downloads Daily Downloads Minimum PHP Version License

What is DoctrineDto?

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.

Requirements

Single dependency: Doctrine orm library Also you need to have PHP >= 5.3

Installation

The simplest way to add DoctrineDto is execute command:

composer require "konstantin-kuklin/doctrine-dto" "dev-master"

Usage example

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');

Usage with Symfony

For using with Symfony framework go to DoctrineDtoBundle.