be95f20646ac40c6e027c55766c359430534f348
[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(
11         'Pman' => array(
12             'storedir' => '/home/press',
13         
14         ),
15         'Factiva' => array(
16             'HTTP_HOST' => 'www.media-outreach.com',
17             'baseURL' => '/release.php',
18         ),
19          
20         
21     );
22     function init($ff, $cfg)
23     {
24       
25         $cfg = $this->overlayDefaults($cfg);
26         
27         if (!empty($this->memory_limit)) {
28             $mem = ini_get('memory_limit');
29             if (php_sapi_name() != 'cli' && $this->to_bytes($mem) < $this->to_bytes($this->memory_limit)) {
30                 die("increase the memory limit settings to 2048M or more");
31             }
32         
33         }
34         
35         return $cfg;
36     }
37     
38     function to_bytes($val) {
39         $val = trim($val);
40         $last = strtolower($val[strlen($val)-1]);
41         switch($last) {
42             // The 'G' modifier is available since PHP 5.1.0
43             case 'g':
44                 $val = substr($val, 0, -1);
45                 $val *= 1024;
46             case 'm':
47                 $val = substr($val, 0, -1);
48                 $val *= 1024;
49                 $val = substr($val, 0, -1);
50             case 'k':
51                 $val *= 1024;
52         }
53     
54         return $val;
55     }
56     function overlayDefaults($cfg)
57     {
58         $this->defaults['disable'] = implode(',', $this->defaults['disable']);
59         foreach($this->defaults as $k=>$v) {
60             if (is_array($v)) {
61                 
62                 if (!isset($cfg[$k])) {
63                     $cfg[$k] = $v;
64                     continue;
65                 }
66                 
67                 foreach($v as $kk=>$vv) {
68                     if (isset($cfg[$k][$kk])) {
69                         continue;
70                     }
71                     
72                     $cfg[$k][$kk] = $vv;
73                 }
74             }
75             
76             if (!isset($cfg[$k])) {
77                 $cfg[$k] = $v;
78             }
79         }
80         
81         return $cfg;
82     }
83     
84
85 }