Completed
Pull Request — master (#9)
by Matthias
02:27
created

GuessFromLoadedExtensions   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1
Metric Value
wmc 4
lcom 0
cbo 1
dl 0
loc 21
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A __invoke() 0 10 3
1
<?php
2
3
namespace ComposerRequireChecker\DependencyGuesser;
4
5
6
use ComposerRequireChecker\DefinedSymbolsLocator\LocateDefinedSymbolsFromExtensions;
7
8
class GuessFromLoadedExtensions implements GuesserInterface
9
{
10
11
    private $loadedExtensions;
12
13
    public function __construct()
14
    {
15
        $this->loadedExtensions = get_loaded_extensions();
16
    }
17
18
    public function __invoke(string $symbolName) : \Generator
19
    {
20
        $definedSymbolsFromExtensions = new LocateDefinedSymbolsFromExtensions();
21
        foreach ($this->loadedExtensions as $extensionName) {
22
            $extensionSymbols = $definedSymbolsFromExtensions([$extensionName]);
23
            if (in_array($symbolName, $extensionSymbols)) {
24
                yield 'ext-' . $extensionName;
25
            }
26
        }
27
    }
28
}
29