FileUtil::loadConfig now returns a DOMDocument
improved config loading & error output
This commit is contained in:
parent
0ecd68a6fd
commit
58b07f266c
@ -68,22 +68,37 @@ abstract class FileUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load config xml-file
|
* Load the Config XML-File with the given Name
|
||||||
*
|
*
|
||||||
* @param string $fileName
|
* @param string $fileName
|
||||||
* @return \SimpleXMLElement
|
* @return \DOMElement
|
||||||
*/
|
*/
|
||||||
public static function loadConfig($fileName) {
|
public static function loadConfig($fileName) {
|
||||||
$fileLocation = ManiaControlDir . 'configs' . DIRECTORY_SEPARATOR . $fileName;
|
$fileLocation = ManiaControlDir . 'configs' . DIRECTORY_SEPARATOR . $fileName;
|
||||||
if (!file_exists($fileLocation)) {
|
if (!file_exists($fileLocation)) {
|
||||||
logMessage("Config File doesn't exist! ({$fileName})");
|
logMessage("Config file doesn't exist! ('{$fileName}')");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (!is_readable($fileLocation)) {
|
if (!is_readable($fileLocation)) {
|
||||||
logMessage("Config File isn't readable! Please check the File Permissions. ({$fileName})");
|
logMessage("Config file isn't readable! Please check the file permissions. ('{$fileName}')");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return simplexml_load_file($fileLocation);
|
$configFileContent = @file_get_contents($fileLocation);
|
||||||
|
if (!$configFileContent) {
|
||||||
|
trigger_error("Couldn't load config file! ('{$fileName}')");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
$domDocument = new \DOMDocument();
|
||||||
|
if (!@$domDocument->loadXML($configFileContent)) {
|
||||||
|
$message = "Config file isn't maintained properly! ('{$fileName}')";
|
||||||
|
$error = error_get_last();
|
||||||
|
if ($error && stripos($error['message'], 'DOMDocument::loadXML()') === 0) {
|
||||||
|
$message .= PHP_EOL . $error['message'];
|
||||||
|
}
|
||||||
|
trigger_error($message);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return $domDocument->firstChild;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -65,7 +65,7 @@ class ManiaControl implements CommandListener, TimerListener {
|
|||||||
public $authenticationManager = null;
|
public $authenticationManager = null;
|
||||||
public $callbackManager = null;
|
public $callbackManager = null;
|
||||||
public $chat = null;
|
public $chat = null;
|
||||||
/** @var \SimpleXMLElement $config */
|
/** @var \DOMElement $config */
|
||||||
public $config = null;
|
public $config = null;
|
||||||
public $configurator = null;
|
public $configurator = null;
|
||||||
/** @var Connection $client */
|
/** @var Connection $client */
|
||||||
@ -160,7 +160,7 @@ class ManiaControl implements CommandListener, TimerListener {
|
|||||||
if (!$this->config) {
|
if (!$this->config) {
|
||||||
$this->quit("Error loading Configuration XML-File! ('{$configFileName}')", true);
|
$this->quit("Error loading Configuration XML-File! ('{$configFileName}')", true);
|
||||||
}
|
}
|
||||||
if ($this->config->count() < 3) {
|
if ($this->config->childNodes->length < 3) {
|
||||||
$this->quit("Your Configuration File ('{$configFileName}') doesn't seem to be maintained properly. Please check it again!", true);
|
$this->quit("Your Configuration File ('{$configFileName}') doesn't seem to be maintained properly. Please check it again!", true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user