EntityLoaderFactory::create()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 7
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 9
rs 10
1
<?php
2
3
namespace Malef\Associate\DoctrineOrm\Loader;
4
5
use Doctrine\ORM\EntityManagerInterface;
6
use Malef\Associate\DoctrineOrm\Collector\AssociationCollector;
7
use Malef\Associate\DoctrineOrm\Loader\ArgumentConverter\AssociationsArgumentConverter;
8
use Malef\Associate\DoctrineOrm\Loader\ArgumentConverter\EntitiesArgumentConverter;
9
use Malef\Associate\DoctrineOrm\Metadata\MetadataAdapterProvider;
10
11
class EntityLoaderFactory
12
{
13
    /**
14
     * @var AssociationLoader
15
     */
16
    protected $associationLoader;
17
18
    /**
19
     * @var AssociationCollector
20
     */
21
    protected $associationCollector;
22
23
    /**
24
     * @var UninitializedProxiesLoader
25
     */
26
    protected $uninitializedProxiesLoader;
27
28
    public function __construct(
29
        AssociationLoader $associationLoader,
30
        AssociationCollector $associationCollector,
31
        UninitializedProxiesLoader $uninitializedProxiesLoader
32
    ) {
33
        $this->associationLoader = $associationLoader;
34
        $this->associationCollector = $associationCollector;
35
        $this->uninitializedProxiesLoader = $uninitializedProxiesLoader;
36
    }
37
38
    public function create(EntityManagerInterface $entityManager): EntityLoader
39
    {
40
        return new EntityLoader(
41
            new EntitiesArgumentConverter(),
42
            new AssociationsArgumentConverter(),
43
            new MetadataAdapterProvider($entityManager),
44
            $this->associationLoader,
45
            $this->associationCollector,
46
            $this->uninitializedProxiesLoader
47
        );
48
    }
49
}
50