2013-11-09 11:19:21 +01:00
|
|
|
<?php
|
2013-11-10 12:51:41 +01:00
|
|
|
|
2014-05-24 21:09:55 +02:00
|
|
|
// Enable error reporting
|
|
|
|
error_reporting(E_ALL);
|
|
|
|
|
2013-12-09 15:43:08 +01:00
|
|
|
// Run configuration
|
2014-06-12 14:30:11 +02:00
|
|
|
define('DEV_MODE', false); // Development mode to not send error reports etc.
|
2013-12-09 15:43:08 +01:00
|
|
|
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-02 17:50:30 +02:00
|
|
|
|
2013-11-10 02:55:08 +01: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
|
2013-12-09 15:43:08 +01:00
|
|
|
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
|
|
|
}
|
|
|
|
|
2014-06-12 15:02:48 +02:00
|
|
|
/*
|
|
|
|
* Build log file name
|
|
|
|
*/
|
|
|
|
function buildLogFileName() {
|
|
|
|
$logFileName = ManiaControlDir . 'logs' . DIRECTORY_SEPARATOR;
|
|
|
|
if (!is_dir($logFileName) && !mkdir($logFileName)) {
|
|
|
|
echo "Couldn't create Logs Folder, please check the File Permissions!";
|
|
|
|
}
|
|
|
|
$logFileName .= 'ManiaControl';
|
|
|
|
if (LOG_NAME_USE_DATE) {
|
|
|
|
$logFileName .= '_' . date('Y-m-d');
|
|
|
|
}
|
|
|
|
if (LOG_NAME_USE_PID) {
|
|
|
|
$logFileName .= '_' . getmypid();
|
|
|
|
}
|
|
|
|
$logFileName .= '.log';
|
|
|
|
ini_set('error_log', $logFileName);
|
2014-01-27 20:16:20 +01:00
|
|
|
}
|
2014-06-12 15:02:48 +02:00
|
|
|
|
|
|
|
buildLogFileName();
|
2013-11-09 11:19:21 +01:00
|
|
|
|
2014-05-24 21:09:55 +02:00
|
|
|
/**
|
|
|
|
* Log and echo the given text
|
|
|
|
*
|
|
|
|
* @param string $message
|
|
|
|
* @param bool $eol
|
|
|
|
*/
|
2014-06-12 14:30:11 +02:00
|
|
|
function logMessage($message, $eol = true) {
|
|
|
|
error_log($message);
|
2014-06-12 15:02:48 +02:00
|
|
|
if ($eol) {
|
|
|
|
$message = '[' . date('d-M-Y H:i:s e') . '] ' . $message . PHP_EOL;
|
|
|
|
}
|
|
|
|
echo $message;
|
2013-12-09 15:43:08 +01:00
|
|
|
}
|
2013-11-10 02:55:08 +01:00
|
|
|
|
2014-06-12 14:30:11 +02:00
|
|
|
logMessage('Starting ManiaControl...');
|
2014-04-13 12:34:45 +02:00
|
|
|
|
2014-05-24 21:09:55 +02:00
|
|
|
/**
|
2014-06-12 15:02:48 +02:00
|
|
|
* Check for the requirements to run ManiaControl
|
2014-05-24 21:09:55 +02:00
|
|
|
*/
|
2014-06-12 15:02:48 +02:00
|
|
|
function checkRequirements() {
|
|
|
|
// Check for min PHP version
|
|
|
|
$minPhpVersion = '5.4';
|
|
|
|
$phpVersion = phpversion();
|
|
|
|
$message = "Checking for minimum required PHP-Version '{$minPhpVersion}'... ";
|
|
|
|
if ($phpVersion < $minPhpVersion) {
|
|
|
|
$message .= "{$minPhpVersion} TOO OLD VERSION!";
|
|
|
|
logMessage($message);
|
|
|
|
logMessage(" -- Make sure that you install at least PHP {$minPhpVersion}!");
|
|
|
|
exit();
|
|
|
|
}
|
|
|
|
logMessage($message . "'{$minPhpVersion}' OK!");
|
|
|
|
|
|
|
|
// Check for MySQLi
|
|
|
|
$message = 'Checking for installed MySQLi... ';
|
|
|
|
if (!extension_loaded('mysqli')) {
|
|
|
|
logMessage($message . 'NOT FOUND!');
|
|
|
|
logMessage(" -- You don't have MySQLi installed! Check: http://www.php.net/manual/en/mysqli.installation.php");
|
|
|
|
exit();
|
|
|
|
}
|
|
|
|
logMessage($message . 'FOUND!');
|
|
|
|
|
|
|
|
// Check for cURL
|
|
|
|
$message = 'Checking for installed cURL... ';
|
|
|
|
if (!extension_loaded('curl')) {
|
|
|
|
logMessage($message . 'NOT FOUND!');
|
|
|
|
logMessage(" -- You don't have cURL installed! Check: http://www.php.net/manual/en/curl.installation.php");
|
|
|
|
exit();
|
|
|
|
}
|
|
|
|
logMessage($message . 'FOUND!');
|
2014-04-13 12:34:45 +02:00
|
|
|
}
|
|
|
|
|
2014-06-12 15:02:48 +02:00
|
|
|
checkRequirements();
|
2014-04-13 12:34:45 +02:00
|
|
|
|
2014-05-29 22:46:38 +02:00
|
|
|
// Make sure garbage collection is enabled
|
|
|
|
gc_enable();
|
|
|
|
|
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
|
|
|
|
2013-12-09 15:43:08 +01:00
|
|
|
// Start ManiaControl
|
2014-01-27 09:07:25 +01:00
|
|
|
$maniaControl = new \ManiaControl\ManiaControl();
|
2013-11-10 02:55:08 +01:00
|
|
|
$maniaControl->run();
|