Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
InterfaceSymbol
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
3 / 3
3
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getExtends
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getAutoloadAliasArray
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace BrianHenryIE\Strauss\Types;
4
5use BrianHenryIE\Strauss\Composer\ComposerPackage;
6use BrianHenryIE\Strauss\Files\FileBase;
7
8/**
9 * @phpstan-import-type InterfaceAliasArray from AutoloadAliasInterface
10 */
11class InterfaceSymbol extends DiscoveredSymbol implements AutoloadAliasInterface
12{
13    /**
14     * @var string[]
15     */
16    protected array $extends;
17
18    /**
19     * @param string $fqdnClassname
20     * @param FileBase $sourceFile
21     * @param ?string $namespace
22     * @param ?ComposerPackage $package
23     * @param string[] $extends
24     */
25    public function __construct(
26        string $fqdnClassname,
27        FileBase $sourceFile,
28        ?string $namespace = null,
29        ?ComposerPackage $package = null,
30        array $extends = []
31    ) {
32        parent::__construct($fqdnClassname, $sourceFile, $namespace ?? '\\', $package);
33
34        $this->extends = $extends;
35    }
36
37    /**
38     * @return string[]
39     */
40    public function getExtends(): array
41    {
42        return $this->extends;
43    }
44
45    /**
46     * @return InterfaceAliasArray
47     */
48    public function getAutoloadAliasArray(): array
49    {
50        return array (
51            'type' => 'interface',
52            'interfacename' => $this->getOriginalLocalName(),
53            'namespace' => $this->namespace,
54            'extends' => [$this->getReplacement()] + $this->getExtends(),
55        );
56    }
57}