Completed
Push — master ( 5da320...906ac1 )
by Marco
01:47
created

AbstractYamlLoader   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 71.43%

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 2
dl 0
loc 25
ccs 5
cts 7
cp 0.7143
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
load() 0 1 ?
A importData() 0 19 4
1
<?php namespace Comodojo\Foundation\Base;
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 Foundation
10
 * @author      Marco Giovinazzi <[email protected]>
11
 * @license     MIT
12
 *
13
 * LICENSE:
14
 *
15
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
 * THE SOFTWARE.
22
 */
23
24
abstract class AbstractYamlLoader {
25
26
    abstract public static function load($file, array $attributes = []);
27
28 3
    protected static function importData($file) {
29
30 3
        if ( file_exists($file) && is_readable($file) ) {
31
32 3
            $data = @file_get_contents($file);
33
34 3
            if ( $data !== false ) {
35
36 3
               return Yaml::parse($data);
37
38
           } else {
39
               throw new ConfigurationException("Configuration file $file not readable");
40
           }
41
42
        } else {
43
            throw new ConfigurationException("Configuration file $file not found");
44
        }
45
46
    }
47
48
}
49