Completed
Pull Request — master (#2069)
by Andreas
21:10
created

getClassNameInflector()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Doctrine\ODM\MongoDB\Proxy\Resolver;
6
7
use Doctrine\ODM\MongoDB\Configuration;
8
use ProxyManager\Inflector\ClassNameInflectorInterface;
9
use function get_class;
10
11
/**
12
 * @internal
13
 */
14
final class ProxyManagerClassNameResolver implements ClassNameResolver
15
{
16
    /** @var Configuration */
17
    private $configuration;
18
19
    public function __construct(Configuration $configuration)
20
    {
21
        $this->configuration = $configuration;
22
    }
23
24
    /**
25
     * Gets the real class name of a class name that could be a proxy.
26
     */
27
    public function getRealClass(string $class) : string
28
    {
29
        return $this->getClassNameInflector()->getUserClassName($class);
30
    }
31
32
    /**
33
     * Gets the real class name of an object (even if its a proxy).
34
     */
35
    public function getClass(object $object) : string
36
    {
37
        return $this->getRealClass(get_class($object));
38
    }
39
40
    private function getClassNameInflector() : ClassNameInflectorInterface
41
    {
42
        return $this->configuration->getProxyManagerConfiguration()->getClassNameInflector();
43
    }
44
}
45