TrackManiaControl/application/ManiaControl.php

134 lines
4.0 KiB
PHP
Raw Normal View History

2013-11-09 11:19:21 +01:00
<?php
2014-05-24 21:09:55 +02:00
// Enable error reporting
error_reporting(E_ALL);
// Run configuration
define('LOG_WRITE_CURRENT_FILE', 'ManiaControl.log'); // Write current log to extra file in base dir
define('LOG_NAME_USE_DATE', true); // Use current date as suffix for log file name in logs folder
define('LOG_NAME_USE_PID', true); // Use current process id as suffix for log file name in logs folder
2014-05-24 20:56:34 +02:00
define('DEV_MODE', false); // Development mode to not send error reports etc.
2014-05-02 17:50:30 +02:00
// Define base dir
2014-05-03 21:37:28 +02:00
define('ManiaControlDir', __DIR__ . DIRECTORY_SEPARATOR);
2013-11-09 11:19:21 +01:00
2014-03-19 11:11:25 +01:00
// Define fatal error level
define('E_FATAL', E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_RECOVERABLE_ERROR | E_USER_ERROR);
2013-11-09 11:19:21 +01:00
// Set process settings
ini_set('memory_limit', '64M');
2014-05-24 20:48:32 +02:00
if (!ini_get('date.timezone') && function_exists('date_default_timezone_set')) {
date_default_timezone_set('UTC');
2013-11-09 11:19:21 +01:00
}
// Build log file name
2014-05-03 21:37:28 +02:00
$logFileName = ManiaControlDir . 'logs' . DIRECTORY_SEPARATOR;
2014-05-03 22:54:42 +02:00
if (!is_dir($logFileName) && !mkdir($logFileName)) {
echo "Couldn't create Logs Folder, please check the File Permissions!";
}
2014-03-19 11:11:25 +01:00
$logFileName .= 'ManiaControl';
if (LOG_NAME_USE_DATE) {
$logFileName .= '_' . date('Y-m-d');
}
if (LOG_NAME_USE_PID) {
$logFileName .= '_' . getmypid();
}
$logFileName .= '.log';
define('LOG_FILE', $logFileName);
2014-05-24 21:09:55 +02:00
@file_put_contents(LOG_FILE, '');
2013-11-09 11:19:21 +01:00
// Delete old current log file
if (LOG_WRITE_CURRENT_FILE) {
2014-05-03 21:37:28 +02:00
$currentLogFileName = ManiaControlDir . LOG_WRITE_CURRENT_FILE;
define('LOG_CURRENT_FILE', $currentLogFileName);
2014-05-24 21:09:55 +02:00
@file_put_contents(LOG_CURRENT_FILE, '');
}
/**
* Log and echo the given text
*
* @param string $message
* @param bool $eol
* @param bool $date
*/
function logMessage($message, $eol = true, $date = true) {
if ($date) {
$date = date('d.M y H:i:s');
$message = $date . ' ' . $message;
}
if ($eol) {
$message .= PHP_EOL;
}
if (defined('LOG_CURRENT_FILE')) {
if (!is_writable(LOG_CURRENT_FILE) || !file_put_contents(LOG_CURRENT_FILE, $message, FILE_APPEND)) {
echo 'Current-Logfile not write-able, please check the File Permissions!';
}
}
if (!is_writable(LOG_FILE) || !file_put_contents(LOG_FILE, $message, FILE_APPEND)) {
echo 'Logfile not write-able, please check the File Permissions!';
}
echo $message;
}
logMessage('Starting ManiaControl ...');
2014-05-24 21:09:55 +02:00
/**
* Check for Min PHP version
*/
define('MIN_PHP_VERSION', '5.4');
2014-05-09 11:02:39 +02:00
logMessage('Checking for minimum required PHP-Version ' . MIN_PHP_VERSION . ' ... ', false);
if (phpversion() >= MIN_PHP_VERSION) {
logMessage(phpversion() . " OK!", true, false);
} else {
logMessage('TOO OLD VERSION!', true, false);
logMessage(' -- Make sure that you install at least PHP 5.4', true, false);
exit();
}
/**
* Checking if all the needed libraries are installed.
* - MySQLi
* - cURL
*/
logMessage('Checking for installed MySQLi ... ', false);
2014-04-13 13:11:19 +02:00
if (extension_loaded('mysqli')) {
2014-05-09 11:02:39 +02:00
logMessage('FOUND!', true, false);
2014-05-02 17:50:30 +02:00
} else {
2014-05-09 11:02:39 +02:00
logMessage('NOT FOUND!', true, false);
logMessage(' -- You don\'t have MySQLi installed, make sure to check: http://www.php.net/manual/en/mysqli.installation.php', true, false);
exit();
}
logMessage('Checking for installed cURL ... ', false);
2014-05-01 20:18:55 +02:00
if (extension_loaded('curl')) {
2014-05-09 11:02:39 +02:00
logMessage('FOUND!', true, false);
2014-05-02 17:50:30 +02:00
} else {
2014-05-09 11:02:39 +02:00
logMessage('NOT FOUND!', true, false);
logMessage('You don\'t have cURL installed, make sure to check: http://www.php.net/manual/en/curl.installation.php', true, false);
exit();
}
2014-01-27 09:07:25 +01:00
// Autoload Function that loads ManiaControl Class Files on Demand
2014-05-01 20:18:55 +02:00
spl_autoload_register(function ($className) {
$classPath = str_replace('\\', DIRECTORY_SEPARATOR, $className);
2014-05-02 17:50:30 +02:00
2014-05-01 20:18:55 +02:00
// Core file
$classDirectoryPath = preg_replace('/ManiaControl/', 'core', $classPath, 1);
2014-05-03 21:37:28 +02:00
$filePath = ManiaControlDir . $classDirectoryPath . '.php';
2014-05-01 20:18:55 +02:00
if (file_exists($filePath)) {
require_once $filePath;
return;
}
2014-05-02 17:50:30 +02:00
2014-05-01 20:18:55 +02:00
// Plugin file
2014-05-03 22:54:42 +02:00
$filePath = ManiaControlDir . 'plugins' . DIRECTORY_SEPARATOR . $classPath . '.php';
2014-05-01 20:18:55 +02:00
if (file_exists($filePath)) {
2014-05-13 16:03:26 +02:00
include_once $filePath;
2014-05-01 20:18:55 +02:00
return;
}
});
2014-01-27 09:07:25 +01:00
// Start ManiaControl
2014-01-27 09:07:25 +01:00
$maniaControl = new \ManiaControl\ManiaControl();
$maniaControl->run();