Code Coverage
 
Lines
Branches
Paths
Functions and Methods
Classes and Traits
Total
85.71% covered (warning)
85.71%
6 / 7
80.00% covered (warning)
80.00%
8 / 10
33.33% covered (danger)
33.33%
2 / 6
50.00% covered (danger)
50.00%
1 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
EntitiesAliases
85.71% covered (warning)
85.71%
6 / 7
80.00% covered (warning)
80.00%
8 / 10
33.33% covered (danger)
33.33%
2 / 6
50.00% covered (danger)
50.00%
1 / 2
8.74
0.00% covered (danger)
0.00%
0 / 1
 __construct
83.33% covered (warning)
83.33%
5 / 6
77.78% covered (warning)
77.78%
7 / 9
20.00% covered (danger)
20.00%
1 / 5
0.00% covered (danger)
0.00%
0 / 1
7.61
 getAlias
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace App\Specification;
4
5/**
6 * @author Wilhelm Zwertvaegher
7 */
8class EntitiesAliases
9{
10    /**
11     * @var array<class-string, string>
12     */
13    private readonly array $aliases;
14
15    /**
16     * @param string ...$args
17     */
18    public function __construct(...$args)
19    {
20        $aliases = [];
21        for ($i = 0; $i < count($args) - 1; $i += 2) {
22            if (!class_exists($args[$i])) {
23                throw new \InvalidArgumentException("Class {$args[$i]} does not exist");
24            }
25            $aliases[$args[$i]] = $args[$i + 1];
26        }
27        $this->aliases = $aliases;
28    }
29
30    public function getAlias(string $class): string
31    {
32        return $this->aliases[$class] ?? throw new \InvalidArgumentException("Class {$class} does not exist");
33    }
34}