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)