1 | <?php |
||
10 | class Loader |
||
11 | { |
||
12 | protected static $loaders = [ |
||
13 | PhpLoader::EXTENSION => PhpLoader::class, |
||
14 | YamlLoader::EXTENSION => YamlLoader::class, |
||
15 | ]; |
||
16 | |||
17 | /** |
||
18 | * @param PathCollection $paths |
||
19 | * @param string $env |
||
20 | * @param string $file |
||
21 | * @return array |
||
22 | */ |
||
23 | 18 | public static function load(PathCollection $paths, $env, $file) |
|
33 | |||
34 | /** |
||
35 | * @param string $path |
||
36 | * @param string $env |
||
37 | * @param string $file |
||
38 | * @return array |
||
39 | */ |
||
40 | 18 | public static function loadFile($path, $env, $file) |
|
41 | { |
||
42 | 18 | $retval = []; |
|
43 | 18 | foreach (self::$loaders as $fileType => $loader) { |
|
44 | 18 | $file = "{$file}.{$fileType}"; |
|
45 | |||
46 | 18 | if ($env) { |
|
47 | 7 | $path = $path . DIRECTORY_SEPARATOR . $env . DIRECTORY_SEPARATOR . $file; |
|
48 | } else { |
||
49 | 18 | $path = $path . DIRECTORY_SEPARATOR . $file; |
|
50 | } |
||
51 | |||
52 | 18 | if (file_exists($path)) { |
|
53 | 18 | if (is_string($loader)) { |
|
54 | 1 | $loader = self::$loaders[$fileType] = new $loader; |
|
55 | } |
||
56 | 18 | if ($loader instanceof LoaderInterface) { |
|
57 | 18 | $retval = $loader::load($path); |
|
58 | 18 | if (!is_array($retval)) { |
|
59 | 18 | $retval = []; |
|
60 | } |
||
61 | } |
||
62 | } |
||
63 | } |
||
64 | 18 | return $retval; |
|
65 | } |
||
66 | |||
67 | /** |
||
68 | * @param array $array1 |
||
69 | * @param array $array2 |
||
70 | * @param array $array3 |
||
71 | * @return array |
||
72 | */ |
||
73 | 18 | public static function mergeArrays(array $array1, array $array2, array $array3 = null) |
|
88 | } |
||
89 |