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

AliasTrait::resolveAlias()   A

Complexity

Conditions 4
Paths 3

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 4.0312

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 13
ccs 7
cts 8
cp 0.875
rs 10
c 0
b 0
f 0
cc 4
nc 3
nop 1
crap 4.0312
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