Conditions | 3 |
Paths | 3 |
Total Lines | 20 |
Code Lines | 11 |
Lines | 0 |
Ratio | 0 % |
Tests | 11 |
CRAP Score | 3.0052 |
Changes | 2 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
22 | 1 | public function resolve(string $relative): string |
|
23 | { |
||
24 | 1 | if (!str_starts_with($relative, '@')) { |
|
25 | 1 | return $relative; |
|
26 | } |
||
27 | |||
28 | 1 | $alias = explode(\DIRECTORY_SEPARATOR, $relative); |
|
29 | |||
30 | 1 | $plugin = $this->pluginClassResolver->resolve(ltrim($alias[0], '@')); |
|
31 | 1 | $reflection = new \ReflectionClass($plugin); |
|
32 | |||
33 | 1 | $file = $reflection->getFileName(); |
|
34 | 1 | if (false === $file) { |
|
35 | return $relative; |
||
36 | } |
||
37 | |||
38 | 1 | $basePath = \dirname($file); |
|
39 | 1 | $alias[0] = $basePath; |
|
40 | |||
41 | 1 | return implode(\DIRECTORY_SEPARATOR, $alias); |
|
42 | } |
||
44 |