Debugging - Indaxia/doctrine-orm-transformations GitHub Wiki
OTR provides PolicyResolverProfiler class to retrieve info about timing and policy resolution including priority and policy nesting.
Specify PolicyResolverProfiler::PRIORITY_DETAILS to get all policies and their priorities of each property.
Example without details
use Indaxia\OTR\Annotations\PolicyResolverProfiler;
$result = $e->toArray($policy, null, new PolicyResolverProfiler());
$pr->results will contain strings like:
Indaxia\OTR\Tests\Transformable\ToPolicyRelationsTest::testValuesWithLocalPolicy profiling:
[To] 0.000616: Relations.id -> Auto (p 0.01)
[To] 0.005025: Relations.deep -> Auto (p 0.1)
[To] 0.005067: Relations.id -> Auto (p 0.01)
[To] 0.005099: Relations.oneA -> Auto (p 0.1)
[To] 0.005129: Simple.id -> Auto (p 0.01)
[To] 0.005160: Simple.value -> Custom (p 0.5)
Example with details
use Indaxia\OTR\Annotations\PolicyResolverProfiler;
$pr = new PolicyResolverProfiler(PolicyResolverProfiler::PRIORITY_DETAILS);
$result = $e->toArray($policy, null, $pr);
$pr->results will contain strings like:
Indaxia\OTR\Tests\Transformable\ToPolicyRelationsTest::testValuesWithLocalPolicy profiling:
[To] 0.000616: Relations.id -> Auto (p 0.01)
- Auto (p 0.01)
[To] 0.005025: Relations.deep -> Auto (p 0.1)
- Auto (p 0.01)
- Auto (p 0.01)
- Auto (p 0.1) {...}(6)
[To] 0.005067: Relations.id -> Auto (p 0.01)
- Auto (p 0.01)
[To] 0.005099: Relations.oneA -> Auto (p 0.1)
- Auto (p 0.01)
- Auto (p 0.1) {...}(1)
[To] 0.005129: Simple.id -> Auto (p 0.01)
- Auto (p 0.01)
[To] 0.005160: Simple.value -> Custom (p 0.5)
- Auto (p 0.01)
- Custom (p 0.5)