Passed
Pull Request — master (#1163)
by Abdul Malik
18:37 queued 07:49
created

AliasTrait   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 15
Duplicated Lines 0 %

Test Coverage

Coverage 87.5%

Importance

Changes 0
Metric Value
wmc 4
eloc 8
dl 0
loc 15
ccs 7
cts 8
cp 0.875
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A resolveAlias() 0 13 4
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Spiral\Core\Traits\Config;
6
7
use Spiral\Core\Exception\Container\ContainerException;
8
9
/**
10
 * Provides aliasing ability for config entities.
11
 *
12
 * @deprecated to be removed in future releases.
13
 */
14
trait AliasTrait
15
{
16 16
    public function resolveAlias(string $alias): string
17
    {
18 16
        $antiCircleReference = [];
19 16
        while (isset($this->config, $this->config['aliases'][$alias]) && \is_string($alias)) {
20 16
            if (\in_array($alias, $antiCircleReference, true)) {
21
                throw new ContainerException(\sprintf('Circle reference detected for alias `%s`.', $alias));
22
            }
23 16
            $antiCircleReference[] = $alias;
24
25 16
            $alias = $this->config['aliases'][$alias];
26
        }
27
28 16
        return $alias;
29
    }
30
}
31