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;
}
}
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)) {
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);
+ }
}