Passed
Branch master (4422ce)
by Alfred
03:48
created
ConfigManager.php 1 patch
Spacing   +89 added lines, -89 removed lines patch added patch discarded remove patch
@@ -24,7 +24,7 @@  discard block
 block discarded – undo
24 24
     /**
25 25
      * processeurs de fichier pris en charge par l'application
26 26
      */
27
-    private $availableDrivers = array('JSON', 'PHP','INI','YML');
27
+    private $availableDrivers = array('JSON', 'PHP', 'INI', 'YML');
28 28
     private $defaultSection = 'runtime';
29 29
 
30 30
     /**
@@ -32,19 +32,19 @@  discard block
 block discarded – undo
32 32
      * @param $filename
33 33
      * @param $location
34 34
      */
35
-    public function __construct( $filename, $location=null )
35
+    public function __construct($filename, $location = null)
36 36
     {
37 37
         $numargs = func_num_args();
38 38
         try
39 39
         {
40
-            if($numargs > 2)
40
+            if ($numargs > 2)
41 41
                 throw new Exception('SETUP ERROR: configuration manager can accept only up to 2 parameters,'.$numargs.' given!');
42
-            $this->configureOptions($filename,$location);
42
+            $this->configureOptions($filename, $location);
43 43
             $this->parseConfiguration($this->Options);
44 44
         }
45
-        catch(Exception $a)
45
+        catch (Exception $a)
46 46
         {
47
-            trigger_error($a->getMessage(),E_USER_ERROR);
47
+            trigger_error($a->getMessage(), E_USER_ERROR);
48 48
         }
49 49
         return $this;
50 50
     }
@@ -54,31 +54,31 @@  discard block
 block discarded – undo
54 54
      * @param $item
55 55
      * @return array|bool|mixed
56 56
      */
57
-    public function get($section=null, $item=null)
57
+    public function get($section = null, $item = null)
58 58
     {
59
-        if($item) $item = trim(strtolower($item));
60
-        if($section) $section = trim(strtolower($section));
61
-        if(!count($this->Config)) return false;
62
-        if(!$section or !strlen($section)) return $this->Config;
63
-        if($section AND $item)
59
+        if ($item) $item = trim(strtolower($item));
60
+        if ($section) $section = trim(strtolower($section));
61
+        if (!count($this->Config)) return false;
62
+        if (!$section or !strlen($section)) return $this->Config;
63
+        if ($section AND $item)
64 64
         {
65
-            if(!isset($this->Config[$section]))
65
+            if (!isset($this->Config[$section]))
66 66
             {
67 67
                 $key = $item;
68 68
                 $item = $section;
69 69
                 $section = $this->defaultSection;
70
-                if(!isset($this->Config[$section][$item][$key]))
70
+                if (!isset($this->Config[$section][$item][$key]))
71 71
                     return false;
72 72
                 return $this->Config[$section][$item][$key];
73 73
             }
74 74
         }
75
-        elseif(!$item or !strlen($item))
75
+        elseif (!$item or !strlen($item))
76 76
         {
77 77
             $item = $section;
78
-            if(isset($this->Config[$item])) return $this->Config[$item];
78
+            if (isset($this->Config[$item])) return $this->Config[$item];
79 79
             $section = $this->defaultSection;
80 80
         }
81
-        if(!isset($this->Config[$section][$item])) return false;
81
+        if (!isset($this->Config[$section][$item])) return false;
82 82
         return $this->Config[$section][$item];
83 83
     }
84 84
     /**
@@ -87,53 +87,53 @@  discard block
 block discarded – undo
87 87
      * @param $value
88 88
      * @return bool
89 89
      */
90
-    public function set($section,$item=null,$value=null)
90
+    public function set($section, $item = null, $value = null)
91 91
     {
92 92
         ob_start();
93 93
         $numarg = func_num_args();
94
-        $arguments=func_get_args();
95
-        switch($numarg)
94
+        $arguments = func_get_args();
95
+        switch ($numarg)
96 96
         {
97 97
             case 1:
98
-                if(!is_array($arguments[0])) return false;
99
-                $item=array_change_key_case($arguments[0], CASE_LOWER); $section=null; $value=null;
98
+                if (!is_array($arguments[0])) return false;
99
+                $item = array_change_key_case($arguments[0], CASE_LOWER); $section = null; $value = null;
100 100
                 break;
101 101
             case 2:
102
-                if(is_array($arguments[0])) return false;
102
+                if (is_array($arguments[0])) return false;
103 103
                 $_arg = strtolower(trim($arguments[0]));
104
-                if(is_array($arguments[1])){ $section=$_arg; $item =array_change_key_case($arguments[1], CASE_LOWER);$value=null;}
105
-                else {$item = $_arg;$value=$arguments[1];$section=null;}
104
+                if (is_array($arguments[1])) { $section = $_arg; $item = array_change_key_case($arguments[1], CASE_LOWER); $value = null; }
105
+                else {$item = $_arg; $value = $arguments[1]; $section = null; }
106 106
                 break;
107 107
             default:
108 108
                 break;
109 109
         }
110
-        $section = $section? trim(strtolower($section)) : $this->defaultSection;
111
-        if(!is_array($item))
110
+        $section = $section ? trim(strtolower($section)) : $this->defaultSection;
111
+        if (!is_array($item))
112 112
         {
113
-            if(!$value) return false;
114
-            $item=trim(strtolower($item));
115
-            if(!isset($this->Config[$section][$item]) or !is_array($this->Config[$section][$item])):
116
-                $this->Config[$section][$item]=$value;
113
+            if (!$value) return false;
114
+            $item = trim(strtolower($item));
115
+            if (!isset($this->Config[$section][$item]) or !is_array($this->Config[$section][$item])):
116
+                $this->Config[$section][$item] = $value;
117 117
             else:
118
-                if(!is_array($value)) $value = array($value);
119
-                $this->Config[$section][$item] = array_merge($this->Config[$section][$item],$value);
118
+                if (!is_array($value)) $value = array($value);
119
+                $this->Config[$section][$item] = array_merge($this->Config[$section][$item], $value);
120 120
             endif;
121 121
         }
122 122
         else
123 123
         {
124
-            if($value) return false;
124
+            if ($value) return false;
125 125
             $item = array_change_key_case($item, CASE_LOWER);
126 126
             $sectionsize = count($this->Config[$section]);
127 127
             $itemsize = count($item);
128
-            if($sectionsize)
128
+            if ($sectionsize)
129 129
             {
130
-                if($itemsize=='1')
130
+                if ($itemsize == '1')
131 131
                 {
132
-                    if(isset($this->Config[$section][key($item)]))
133
-                        $this->Config[$section][key($item)] = array_merge($this->Config[$section][key($item)],$item[key($item)]);
134
-                    else if(!is_numeric(key($item))) $this->Config[$section][key($item)]=$item[key($item)];
132
+                    if (isset($this->Config[$section][key($item)]))
133
+                        $this->Config[$section][key($item)] = array_merge($this->Config[$section][key($item)], $item[key($item)]);
134
+                    else if (!is_numeric(key($item))) $this->Config[$section][key($item)] = $item[key($item)];
135 135
                 }
136
-                else $this->Config[$section] = array_merge($this->Config[$section],$item);
136
+                else $this->Config[$section] = array_merge($this->Config[$section], $item);
137 137
             }
138 138
             else $this->Config[$section] = $item;
139 139
         }
@@ -146,30 +146,30 @@  discard block
 block discarded – undo
146 146
      * @param $item
147 147
      * @return bool
148 148
      */
149
-    public function del($section, $item=null)
149
+    public function del($section, $item = null)
150 150
     {
151 151
         $section = trim(strtolower($section));
152
-        if($item and strlen($item))
152
+        if ($item and strlen($item))
153 153
         {
154 154
             $item = trim(strtolower($item));
155
-            if(!isset($this->Config[$section]))
155
+            if (!isset($this->Config[$section]))
156 156
             {
157 157
                 $key = $item;
158 158
                 $item = $section;
159 159
                 $section = $this->defaultSection;
160
-                if(isset($this->Config[$section][$item][$key]))
160
+                if (isset($this->Config[$section][$item][$key]))
161 161
                 {
162
-                    $itemSize=count($this->Config[$section][$item]);
163
-                    if($itemSize>1) unset($this->Config[$section][$item][$key]);
162
+                    $itemSize = count($this->Config[$section][$item]);
163
+                    if ($itemSize > 1) unset($this->Config[$section][$item][$key]);
164 164
                     else unset($this->Config[$section]);
165 165
                 }
166 166
             }
167 167
             else
168 168
             {
169
-                $sectionSize=count($this->Config[$section]);
170
-                if(isset($this->Config[$section][$item]))
169
+                $sectionSize = count($this->Config[$section]);
170
+                if (isset($this->Config[$section][$item]))
171 171
                 {
172
-                    if($sectionSize>1) unset($this->Config[$section][$item]);
172
+                    if ($sectionSize > 1) unset($this->Config[$section][$item]);
173 173
                     else unset($this->Config[$section]);
174 174
                 }
175 175
             }
@@ -177,13 +177,13 @@  discard block
 block discarded – undo
177 177
         else
178 178
         {
179 179
             $item = $section;
180
-            if(!isset($this->Config[$item]))
180
+            if (!isset($this->Config[$item]))
181 181
             {
182 182
                 $section = $this->defaultSection;
183 183
                 $defaultSectionSize = count($this->Config[$section]);
184
-                if(isset($this->Config[$section][$item]))
184
+                if (isset($this->Config[$section][$item]))
185 185
                 {
186
-                    if($defaultSectionSize>1) unset($this->Config[$section][$item]);
186
+                    if ($defaultSectionSize > 1) unset($this->Config[$section][$item]);
187 187
                     else unset($this->Config[$section]);
188 188
                 }
189 189
             }
@@ -198,29 +198,29 @@  discard block
 block discarded – undo
198 198
      * @return array
199 199
      * @throws Exception
200 200
      */
201
-    private function configureOptions($file,$location=null){
202
-        if(!is_string($file) or ($location and !is_string($location)))
201
+    private function configureOptions($file, $location = null) {
202
+        if (!is_string($file) or ($location and !is_string($location)))
203 203
             throw new Exception('SETUP ERROR: configuration manager can accept string only parameters');
204
-        $default=[
204
+        $default = [
205 205
             'driver' => 'PHP',
206 206
             'filename' => null,
207 207
             'directory' => __DIR__,
208 208
         ];
209 209
         $Options = [];
210
-        if($location)
211
-            $Options['directory']=rtrim($this->normalize($location),DIRECTORY_SEPARATOR);
212
-        else{
213
-            if(basename($file)!==$file)
214
-                $Options['directory']= rtrim($this->normalize(pathinfo($file,PATHINFO_DIRNAME)),DIRECTORY_SEPARATOR);
210
+        if ($location)
211
+            $Options['directory'] = rtrim($this->normalize($location), DIRECTORY_SEPARATOR);
212
+        else {
213
+            if (basename($file) !== $file)
214
+                $Options['directory'] = rtrim($this->normalize(pathinfo($file, PATHINFO_DIRNAME)), DIRECTORY_SEPARATOR);
215 215
         }
216 216
         $Options['filename'] = basename($file);
217
-        if(strpos($Options['filename'],'.')!==false)
217
+        if (strpos($Options['filename'], '.') !== false)
218 218
             $Options['driver'] = strtoupper(pathinfo($Options['filename'], PATHINFO_EXTENSION));
219 219
         else
220
-            $Options['filename']= $Options['filename'].'.'.strtolower($default['driver']);
221
-        if(!in_array($Options['driver'],$this->availableDrivers))
220
+            $Options['filename'] = $Options['filename'].'.'.strtolower($default['driver']);
221
+        if (!in_array($Options['driver'], $this->availableDrivers))
222 222
             throw new Exception('ERROR: driver "'.$Options['driver'].'" not supported');
223
-        $this->Options = array_merge($default,$Options);
223
+        $this->Options = array_merge($default, $Options);
224 224
         return $this->Options;
225 225
     }
226 226
 
@@ -231,7 +231,7 @@  discard block
 block discarded – undo
231 231
      */
232 232
     private function normalize($path, $relativeTo = null) {
233 233
         $path = rtrim(preg_replace('#[/\\\\]+#', DIRECTORY_SEPARATOR, $path), DIRECTORY_SEPARATOR);
234
-        $isAbsolute = stripos(PHP_OS, 'win')===0 ? preg_match('/^[A-Za-z]+:/', $path): !strncmp($path, DIRECTORY_SEPARATOR, 1);
234
+        $isAbsolute = stripos(PHP_OS, 'win') === 0 ? preg_match('/^[A-Za-z]+:/', $path) : !strncmp($path, DIRECTORY_SEPARATOR, 1);
235 235
         if (!$isAbsolute)
236 236
         {
237 237
             if (!$relativeTo) $relativeTo = getcwd();
@@ -244,7 +244,7 @@  discard block
 block discarded – undo
244 244
         while (end($parts) !== false)
245 245
         {
246 246
             array_pop($parts);
247
-            $attempt = stripos(PHP_OS, 'win')===0 ? implode(DIRECTORY_SEPARATOR, $parts): DIRECTORY_SEPARATOR.implode(DIRECTORY_SEPARATOR, $parts);
247
+            $attempt = stripos(PHP_OS, 'win') === 0 ? implode(DIRECTORY_SEPARATOR, $parts) : DIRECTORY_SEPARATOR.implode(DIRECTORY_SEPARATOR, $parts);
248 248
             if ($realpaths = realpath($attempt))
249 249
             {
250 250
                 $path = $realpaths.substr($path, strlen($attempt));
@@ -259,16 +259,16 @@  discard block
 block discarded – undo
259 259
      * @return array|bool|mixed
260 260
      */
261 261
     
262
-    private function parseConfiguration($options=[])
262
+    private function parseConfiguration($options = [])
263 263
     {
264 264
         try
265 265
         {  $this->targetFile = $this->normalize($options['directory'].DIRECTORY_SEPARATOR.$options['filename']);
266
-            if(!file_exists($this->targetFile))
267
-                file_put_contents($this->targetFile,'',LOCK_EX);
268
-            switch($this->Options['driver'])
266
+            if (!file_exists($this->targetFile))
267
+                file_put_contents($this->targetFile, '', LOCK_EX);
268
+            switch ($this->Options['driver'])
269 269
             {
270 270
                 case 'JSON':
271
-                    if(!function_exists('json_decode')) 
271
+                    if (!function_exists('json_decode')) 
272 272
                         throw new Exception('Error: The PHP-Json extension is missing');
273 273
                     $this->Config = unserialize(json_decode(file_get_contents($this->targetFile), true));
274 274
                     break;
@@ -276,19 +276,19 @@  discard block
 block discarded – undo
276 276
                     $this->Config = parse_ini_file($this->targetFile, true);
277 277
                     break;
278 278
                 case 'YML':
279
-                    $ndocs=0;
280
-                    if(!function_exists('yaml_parse_file'))
279
+                    $ndocs = 0;
280
+                    if (!function_exists('yaml_parse_file'))
281 281
                         throw new Exception('Error: The PHP-Yaml extension is missing');
282
-                    $this->Config = yaml_parse_file($this->targetFile,0,$ndocs);
282
+                    $this->Config = yaml_parse_file($this->targetFile, 0, $ndocs);
283 283
                     break;
284 284
                 default:
285
-                    if(!$this->Config = include $this->targetFile) $this->Config = [];
285
+                    if (!$this->Config = include $this->targetFile) $this->Config = [];
286 286
                     break;
287 287
             }
288 288
         }
289
-        catch(Exception $b)
289
+        catch (Exception $b)
290 290
         {
291
-            trigger_error($b->getMessage(),E_USER_ERROR);
291
+            trigger_error($b->getMessage(), E_USER_ERROR);
292 292
         }
293 293
         return $this->Config;
294 294
     }
@@ -299,16 +299,16 @@  discard block
 block discarded – undo
299 299
     private function Save()
300 300
     {
301 301
         try {
302
-            if( !is_writeable( $this->targetFile ) )
302
+            if (!is_writeable($this->targetFile))
303 303
             {
304
-                if(@chmod($this->targetFile,0775))
304
+                if (@chmod($this->targetFile, 0775))
305 305
                     throw new Exception('Cant write to file: '.$this->targetFile);
306 306
             }
307 307
             $content = null;
308
-            switch($this->Options['driver'])
308
+            switch ($this->Options['driver'])
309 309
             {
310 310
                 case 'JSON':
311
-                    if(!function_exists('json_encode'))
311
+                    if (!function_exists('json_encode'))
312 312
                         throw new Exception('Error: The PHP-Json extension is missing');
313 313
                     $content .= json_encode(serialize($this->Config));
314 314
                     break;
@@ -316,34 +316,34 @@  discard block
 block discarded – undo
316 316
                     $content .= '; @file generator: Iriven France Php "'.get_class($this).'" Class'.PHP_EOL;
317 317
                     $content .= '; @Last Update: '.date('Y-m-d H:i:s').PHP_EOL;
318 318
                     $content .= PHP_EOL;
319
-                    foreach($this->Config as $section => $array)
319
+                    foreach ($this->Config as $section => $array)
320 320
                     {
321 321
                         is_array($array) or $array = array($array);
322
-                        $content .= '[' . $section . ']'.PHP_EOL;
323
-                        foreach( $array as $key => $value )
322
+                        $content .= '['.$section.']'.PHP_EOL;
323
+                        foreach ($array as $key => $value)
324 324
                             $content .= $key.' = '.$value.PHP_EOL;
325 325
                         $content .= PHP_EOL;
326 326
                     }
327 327
                     break;
328 328
                 case 'YML':
329
-                    if(!function_exists('yaml_emit'))
329
+                    if (!function_exists('yaml_emit'))
330 330
                         throw new Exception('Error: The PHP-Yaml extension is missing');
331
-                    $content .= yaml_emit ($this->Config, YAML_UTF8_ENCODING , YAML_LN_BREAK );
331
+                    $content .= yaml_emit($this->Config, YAML_UTF8_ENCODING, YAML_LN_BREAK);
332 332
                     break;
333 333
                 default:
334 334
                     $content .= '<?php'.PHP_EOL;
335 335
                     $content .= 'return ';
336
-                    $content .= var_export($this->Config, true) . ';';
336
+                    $content .= var_export($this->Config, true).';';
337 337
                     $content = preg_replace('/array\s+\(/', '[', $content);
338 338
                     $content = preg_replace('/,(\s+)\)/', '$1]', $content);
339 339
                     break;
340 340
             }
341 341
             file_put_contents($this->targetFile, $content, LOCK_EX);
342
-            if(@chmod($this->targetFile,0644))
342
+            if (@chmod($this->targetFile, 0644))
343 343
                 throw new Exception('Cant write to file: '.$this->targetFile);
344 344
         }
345 345
         catch (Exception $e)
346
-        {  trigger_error($e->getMessage(),E_USER_ERROR);}
346
+        {  trigger_error($e->getMessage(), E_USER_ERROR); }
347 347
         return true;
348 348
     }
349 349
     /**
Please login to merge, or discard this patch.