Completed
Push — master ( 00aa22...6005e9 )
by Richard
07:10
created

Json::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 3
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
namespace Transphporm\TSSFunction;
3
class Json implements \Transphporm\TSSFunction {
4
    private $baseDir;
5
6
    public function __construct(&$baseDir) {
7
        $this->baseDir = &$baseDir;
8
    }
9
10
    public function run(array $args, \DomElement $element = null) {
11
        $json = $args[0];
12
13
        if ($this->isJsonFile($json)) {
14
            $path = $this->baseDir . $json;
15
            if (!file_exists($path)) throw new \Exception('File does not exist at: ' . $path);
16
            $json = file_get_contents($path);
17
        }
18
19
        $map = json_decode($json, true);
20
21
        if (!is_array($map)) throw new \Exception('Could not decode json: ' . json_last_error_msg());
22
23
        return $map;
24
    }
25
26
    private function isJsonFile($json) {
27
        return trim($json)[0] != '{' && trim($json)[0] != '[';
28
    }
29
}
30