X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=Config.php;h=25595a73f88fcb9879596481afaba010c111f6ca;hp=7eb31607ef6121349d5b62203a71cd2230d457c8;hb=HEAD;hpb=6bb0e09ff0687675e78af8acf57e0e7ee2cab1cb diff --git a/Config.php b/Config.php index 7eb31607..d6dc5e61 100644 --- a/Config.php +++ b/Config.php @@ -10,19 +10,41 @@ class Pman_Core_Config { var $defaults = array( ); // override... + // note if other extended 'config's require more, then you porbably need to include these first. + var $required_extensions = array( + 'json', + 'curl', + 'gd', + 'mbstring', + 'http' + ); + function init($ff, $cfg) { - + + + $cfg = $this->overlayDefaults($cfg); if (!empty($this->memory_limit)) { $mem = ini_get('memory_limit'); if (php_sapi_name() != 'cli' && $this->to_bytes($mem) < $this->to_bytes($this->memory_limit)) { - die("increase the memory limit settings to 2048M or more"); + trigger_error("increase the memory limit settings to 2048M or more", E_USER_ERROR); } } + $this->verifyExtensions(); + + + if (!isset($cfg['Pman']['timezone'])) { + trigger_error("timezone needs setting in Pman[timezone]", E_USER_ERROR); + } + if ($cfg['Pman']['timezone'] != ini_get('date.timezone')) { + trigger_error("timezone needs setting in php.ini date.timezone = " . $cfg['Pman']['timezone'], E_USER_ERROR); + } + + return $cfg; } @@ -46,7 +68,9 @@ class Pman_Core_Config { } function overlayDefaults($cfg) { - $this->defaults['disable'] = implode(',', $this->defaults['disable']); + if (isset($this->defaults['disable']) && is_array($this->defaults['disable']) ) { + $this->defaults['disable'] = implode(',', $this->defaults['disable']); + } foreach($this->defaults as $k=>$v) { if (is_array($v)) { @@ -71,6 +95,23 @@ class Pman_Core_Config { return $cfg; } - + function verifyExtensions() + { + $error = array(); + + foreach ($this->required_extensions as $e){ + + if(empty($e) || extension_loaded($e)) { + continue; + } + + $error[] = "Error: Please install php extension: {$e}"; + } + + if(empty($error)){ + return true; + } + trigger_error("Missing Extensions: \n" . implode('\n', $error), E_USER_ERROR); + } }