Passed
Pull Request — master (#8)
by
unknown
06:50
created

SelfResolver   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 18
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 8
c 1
b 0
f 0
dl 0
loc 18
ccs 8
cts 8
cp 1
rs 10
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A resolve() 0 13 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Prozorov\Repositories\Resolvers;
6
7
use Prozorov\Repositories\Contracts\{HasRepositoryInterface, RepositoryInterface, ResolverInterface};
8
use Prozorov\Repositories\Exceptions\CouldNotResolve;
9
10
class SelfResolver implements ResolverInterface
11
{
12
    /**
13
     * @inheritDoc
14
     */
15 3
    public function resolve(string $className): RepositoryInterface
16
    {
17 3
        if (class_exists($className)) {
18 2
            $model = new $className();
19 2
            if ($model instanceof HasRepositoryInterface) {
20 1
                return $model->getRepository();
21
            }
22
        }
23
24 2
        $exception = new CouldNotResolve();
25 2
        $exception->setRepositoryCode($className);
26
27 2
        throw $exception;
28
    }
29
}
30