1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
<?php
/*
* Class to parse the ido2db.cfg
*
* @author Michael Lübben <michael_luebben@web.de>
*/
class Ido2dbParser {
// Default path to ido2db.cfg
public $defaultPathToCfgFile = "@sysconfdir@/ido2db.cfg";
// Temporary array for read in ido2db configuration file
public $arrTmpCfgFile = NULL;
public $arrCfgFile = NULL;
// Array with allowed parameter in the configuration file
protected $allowedParameters = array(
"lock_file",
"ndo2db_user",
"ndo2db_group",
"socket_type",
"socket_name",
"tcp_port",
"db_servertype",
"db_host",
"db_port",
"db_name",
"db_prefix",
"db_user",
"db_pass",
"max_timedevents_age",
"max_systemcommands_age",
"max_servicechecks_age",
"max_hostchecks_age",
"max_eventhandlers_age",
"debug_level",
"debug_verbosity",
"debug_file",
"max_debug_file_size");
/*
* public function __constructor
*
* @author Michael Lübben <michael_luebben@web.de>
* @params string $setPathToCfgFile
*/
public function __construct($setPathToCfgFile = NULL) {
if ($setPathToCfgFile === NULL) {
$this->pathToCfgFile = $this->defaultPathToCfgFile;
} else {
$this->pathToCfgFile = $setPathToCfgFile;
}
$this->parseCfgFile();
}
/*
* protected function parseCfgFile
*
* @author Michael Lübben <michael_luebben@web.de>
*/
protected function parseCfgFile() {
// Read cfg file
$this->arrTmpCfgFile = file($this->pathToCfgFile);
// Remove comments and blank lines from array
foreach ($this->arrTmpCfgFile as $line) {
$line = trim($line);
if (strlen($line) != 0) {
if (substr($line,0,1) != "#") {
$arrTmpParam = explode("=",$line);
$this->arrCfgFile[$arrTmpParam[0]] = $arrTmpParam[1];
}
}
}
}
/*
* public function getConfigParameter
*
* @params string $param
* @author Michael Lübben <michael_luebben@web.de>
*/
public function getConfigParameter($parameter) {
if (!in_array($parameter, $this->allowedParameters)) {
throw new Exception('Undefined parameter '.$parameter);
} else {
return $this->arrCfgFile[$parameter];
}
}
}
// extend exceptions
class parseIdo2dbException extends Exception {}
?>
|