Completed
Push — master ( 465cbd...e0d13e )
by Marco
06:44 queued 11s
created

CommandsLoader::load()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 15
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 0
Metric Value
dl 0
loc 15
ccs 0
cts 11
cp 0
rs 9.2
c 0
b 0
f 0
cc 4
eloc 7
nc 4
nop 1
crap 20
1
<?php namespace Comodojo\Dispatcher\Components;
2
3
use \Symfony\Component\Yaml\Yaml;
4
use \Symfony\Component\Yaml\Exception\ParseException;
5
use \Comodojo\Exception\ConfigurationException;
6
use \Exception;
7
8
/**
9
 * @package     Comodojo Dispatcher
10
 * @author      Marco Giovinazzi <[email protected]>
11
 * @author      Marco Castiello <[email protected]>
12
 * @license     MIT
13
 *
14
 * LICENSE:
15
 *
16
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
 * THE SOFTWARE.
23
 */
24
25
class CommandsLoader {
26
27
    public static function load($commandconfig) {
28
29
        $config = self::importData($commandconfig);
30
31
        $classes = [];
32
33
        foreach ($config as $package) {
34
            foreach ($package as $command) {
35
                if ( $command['scope'] === 'dispatcher') {
36
                    $classes[] = $command['class'];
37
                }
38
            }
39
        }
40
41
        return $classes;
42
43
    }
44
45
    protected static function importData($file) {
46
47
        if ( file_exists($file) && is_readable($file) ) {
48
49
            $data = @file_get_contents($file);
50
51
            if ( $data !== false ) {
0 ignored issues
show
introduced by
The condition $data !== false is always true.
Loading history...
52
53
               return Yaml::parse($data);
54
55
           } else {
56
               throw new ConfigurationException("Configuration file $file not readable");
57
           }
58
59
        } else {
60
            throw new ConfigurationException("Configuration file $file not found");
61
        }
62
63
    }
64
65
}
66