Fix #6574 - default configuration for project - base class
[Pman.Core] / Config.php
1 <?php
2
3 // default framework settings for release
4
5 class Pman_Core_Config {
6     
7     
8     var $memory_limit = 0;
9     
10     var $defaults = array(  ); // override... 
11     
12     
13     function init($ff, $cfg)
14     {
15       
16         $cfg = $this->overlayDefaults($cfg);
17         
18         if (!empty($this->memory_limit)) {
19             $mem = ini_get('memory_limit');
20             if (php_sapi_name() != 'cli' && $this->to_bytes($mem) < $this->to_bytes($this->memory_limit)) {
21                 die("increase the memory limit settings to 2048M or more");
22             }
23         
24         }
25         
26         return $cfg;
27     }
28     
29     function to_bytes($val) {
30         $val = trim($val);
31         $last = strtolower($val[strlen($val)-1]);
32         switch($last) {
33             // The 'G' modifier is available since PHP 5.1.0
34             case 'g':
35                 $val = substr($val, 0, -1);
36                 $val *= 1024;
37             case 'm':
38                 $val = substr($val, 0, -1);
39                 $val *= 1024;
40                 $val = substr($val, 0, -1);
41             case 'k':
42                 $val *= 1024;
43         }
44     
45         return $val;
46     }
47     function overlayDefaults($cfg)
48     {
49         $this->defaults['disable'] = implode(',', $this->defaults['disable']);
50         foreach($this->defaults as $k=>$v) {
51             if (is_array($v)) {
52                 
53                 if (!isset($cfg[$k])) {
54                     $cfg[$k] = $v;
55                     continue;
56                 }
57                 
58                 foreach($v as $kk=>$vv) {
59                     if (isset($cfg[$k][$kk])) {
60                         continue;
61                     }
62                     
63                     $cfg[$k][$kk] = $vv;
64                 }
65             }
66             
67             if (!isset($cfg[$k])) {
68                 $cfg[$k] = $v;
69             }
70         }
71         
72         return $cfg;
73     }
74     
75
76 }