public function __construct($filename = null)
{
$conf = null;
if ($filename) {
if (file_exists($filename)) {
$conf = json_decode(file_get_contents($filename), true);
if (empty($conf)) {
echo 'Unable to parse input file';
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - No errors';
break;
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
echo ' - Unknown error';
break;
}
die("\n");
}
} else {
die("Config-file '{$filename}' not found or not readable...\n");
}
}
$this->_parse($conf);
}