improved logs, backup & temp folder creation

This commit is contained in:
Steffen Schröder 2014-06-20 15:17:52 +02:00
parent 488b6fc4a4
commit 6fd042b57b
4 changed files with 49 additions and 54 deletions

View File

@ -9,7 +9,7 @@ namespace ManiaControl;
* @copyright 2014 ManiaControl Team
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
*/
class AutoLoader {
abstract class AutoLoader {
/**
* Register the Auto Loader
@ -17,6 +17,7 @@ class AutoLoader {
public static function register() {
spl_autoload_register(array(get_class(), 'autoload'));
}
/**
* Try to autoload the Class with the given Name
*

View File

@ -12,10 +12,6 @@ use ManiaControl\ManiaControl;
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
*/
abstract class BackupUtil {
/*
* Constants
*/
const FOLDER_NAME_BACKUP = 'backup';
/**
* Perform a Full Backup of ManiaControl
@ -30,7 +26,7 @@ abstract class BackupUtil {
$backupFileName = $backupFolder . 'backup_' . ManiaControl::VERSION . '_' . date('y-m-d_H-i') . '_' . time() . '.zip';
$backupZip = new \ZipArchive();
if ($backupZip->open($backupFileName, \ZipArchive::CREATE) !== true) {
trigger_error("Couldn't create Backup Zip!");
trigger_error("Couldn't create backup zip!");
return false;
}
$excludes = array();
@ -46,16 +42,16 @@ abstract class BackupUtil {
/**
* Get the Backup Folder Path and create it if necessary
*
* @return string
* @return string|bool
*/
private static function getBackupFolder() {
$backupFolder = ManiaControlDir . self::FOLDER_NAME_BACKUP . DIRECTORY_SEPARATOR;
$backupFolder = ManiaControlDir . 'backup' . DIRECTORY_SEPARATOR;
if (!is_dir($backupFolder) && !mkdir($backupFolder)) {
trigger_error("Couldn't create Backup Folder!");
trigger_error("Couldn't create backup folder!");
return false;
}
if (!is_writeable($backupFolder)) {
trigger_error("ManiaControl doesn't have the necessary Writing Rights for the Backup Folder!");
trigger_error("ManiaControl doesn't have the necessary write rights for the backup folder!");
return false;
}
return $backupFolder;
@ -71,10 +67,11 @@ abstract class BackupUtil {
* @param array $baseFileNames
* @return bool
*/
private static function zipDirectory(\ZipArchive &$zipArchive, $folderName, $prefixLength, array $excludes = array(), array $baseFileNames = array()) {
private static function zipDirectory(\ZipArchive &$zipArchive, $folderName, $prefixLength, array $excludes = array(),
array $baseFileNames = array()) {
$folderHandle = opendir($folderName);
if (!is_resource($folderHandle)) {
trigger_error("Couldn't open Folder '{$folderName}' for Backup!");
trigger_error("Couldn't open folder '{$folderName}' for backup!");
return false;
}
$useBaseFileNames = !empty($baseFileNames);
@ -120,7 +117,7 @@ abstract class BackupUtil {
$backupFileName = $backupFolder . 'backup_plugins_' . ManiaControl::VERSION . date('y-m-d_H-i') . '_' . time() . '.zip';
$backupZip = new \ZipArchive();
if ($backupZip->open($backupFileName, \ZipArchive::CREATE) !== true) {
trigger_error("Couldn't create Backup Zip!");
trigger_error("Couldn't create backup zip!");
return false;
}
$directory = ManiaControlDir . 'plugins';

View File

@ -70,7 +70,7 @@ abstract class FileUtil {
}
/**
* Load config xml-file
* Load Config XML File
*
* @param string $fileName
* @return \SimpleXMLElement
@ -78,11 +78,11 @@ abstract class FileUtil {
public static function loadConfig($fileName) {
$fileLocation = ManiaControlDir . 'configs' . DIRECTORY_SEPARATOR . $fileName;
if (!file_exists($fileLocation)) {
Logger::log("Config File doesn't exist! ({$fileName})");
Logger::log("Config file doesn't exist! ({$fileName})");
return null;
}
if (!is_readable($fileLocation)) {
Logger::log("Config File isn't readable! Please check the File Permissions. ({$fileName})");
Logger::log("Config file isn't readable! Please check the file permissions. ({$fileName})");
return null;
}
$configXml = @simplexml_load_file($fileLocation);
@ -112,20 +112,24 @@ abstract class FileUtil {
* @return bool
*/
public static function removeTempFolder() {
$tempFolder = self::getTempFolder(false);
$tempFolder = self::getTempFolder();
return @rmdir($tempFolder);
}
/**
* Get the Temporary Folder and create it if necessary
*
* @param bool $createIfNecessary
* @return string
* @return string|bool
*/
public static function getTempFolder($createIfNecessary = true) {
public static function getTempFolder() {
$tempFolder = ManiaControlDir . 'temp' . DIRECTORY_SEPARATOR;
if ($createIfNecessary && !is_dir($tempFolder)) {
mkdir($tempFolder);
if (!is_dir($tempFolder) && !mkdir($tempFolder)) {
trigger_error("Couldn't create the temp folder!");
return false;
}
if (!is_writeable($tempFolder)) {
trigger_error("ManiaControl doesn't have the necessary write rights for the temp folder!");
return false;
}
return $tempFolder;
}
@ -140,7 +144,6 @@ abstract class FileUtil {
if (!is_array($directories)) {
$directories = array($directories);
}
foreach ($directories as $directory) {
$dir = new \RecursiveDirectoryIterator(ManiaControlDir . $directory);
foreach (new \RecursiveIteratorIterator($dir) as $fileName => $file) {
@ -148,8 +151,7 @@ abstract class FileUtil {
continue;
}
if (!is_writable($fileName)) {
$message = "Write-Access missing for File '{$fileName}'!";
Logger::log($message);
Logger::log("Write access missing for file '{$fileName}'!");
return false;
}
}
@ -165,7 +167,7 @@ abstract class FileUtil {
* @return bool
*/
public static function deleteOldLogFiles($maxFileAgeInDays = 10.) {
$logsFolderPath = Logger::getLogsFolderPath();
$logsFolderPath = Logger::getLogsFolder();
if (!is_readable($logsFolderPath)) {
return false;
}

View File

@ -37,39 +37,21 @@ class Logger {
}
/**
* Create the Logs Folder and return its Path if successful
* Get the Logs Folder and create it if necessary
*
* @return bool|string
* @return string|bool
*/
private static function createLogsFolder() {
$logsFolderPath = self::getLogsFolderPath();
if (!is_dir($logsFolderPath) && !mkdir($logsFolderPath)) {
self::output("Couldn't create Logs Folder, please check the File Permissions!");
public static function getLogsFolder() {
$logsFolder = ManiaControlDir . 'logs' . DIRECTORY_SEPARATOR;
if (!is_dir($logsFolder) && !mkdir($logsFolder)) {
trigger_error("Couldn't create the logs folder!");
return false;
}
return $logsFolderPath;
}
/**
* Build the Logs Folder Path
*
* @return string
*/
public static function getLogsFolderPath() {
return ManiaControlDir . 'logs' . DIRECTORY_SEPARATOR;
}
/**
* Echo the given Message
*
* @param string $message
* @param bool $eol
*/
public static function output($message, $eol = true) {
if ($eol) {
$message = '[' . date('d-M-Y H:i:s e') . '] ' . $message . PHP_EOL;
if (!is_writeable($logsFolder)) {
trigger_error("ManiaControl doesn't have the necessary write rights for the logs folder!");
return false;
}
echo $message;
return $logsFolder;
}
/**
@ -98,6 +80,19 @@ class Logger {
}
}
/**
* Echo the given Message
*
* @param string $message
* @param bool $eol
*/
public static function output($message, $eol = true) {
if ($eol) {
$message = '[' . date('d-M-Y H:i:s e') . '] ' . $message . PHP_EOL;
}
echo $message;
}
/**
* Log and echo the given Info Message
*