Fixes for setup

This commit is contained in:
Mal 2020-08-25 11:20:51 +02:00
parent 46fc2c978f
commit 2080de7a10
3 changed files with 32 additions and 10 deletions

View File

@ -2,11 +2,11 @@
declare(strict_types=1); declare(strict_types=1);
class Autoloader final class Autoloader
{ {
private const PATH_CLASSES = 'backend/classes'; public const PATH_CLASSES = 'backend/classes';
private const PATH_CONTROLLERS = self::PATH_CLASSES . '/controller'; public const PATH_CONTROLLERS = self::PATH_CLASSES . '/controller';
private const PATH_CACHE = 'backend/cache/'; public const PATH_CACHE = 'backend/cache/';
public function __construct(string $cachePath = self::PATH_CACHE) public function __construct(string $cachePath = self::PATH_CACHE)
{ {

View File

@ -28,7 +28,9 @@ final class Setting
} }
'; ';
$hostname = getUserInput('MySQL host address (default "localhost"): '); echo 'Let\'s setup the database. Please enter the informations for your database...' . PHP_EOL;
$hostname = getUserInput('MySQL host address: ');
$username = getUserInput('MySQL user: '); $username = getUserInput('MySQL user: ');
$password = getUserInput('MySQL password (shown!): '); $password = getUserInput('MySQL password (shown!): ');
$database = getUserInput('MySQL database: '); $database = getUserInput('MySQL database: ');
@ -39,12 +41,16 @@ $settings = str_replace(
TEMPLATE_SETTINGS TEMPLATE_SETTINGS
); );
require 'backend/classes/core/Autoloader.php';
if (!is_dir(Autoloader::PATH_CACHE)) {
mkdir(Autoloader::PATH_CACHE);
}
$file = fopen(getcwd() . '/backend/classes/Setting.php', 'w'); $file = fopen(getcwd() . '/backend/classes/Setting.php', 'w');
fwrite($file, $settings); fwrite($file, $settings);
fclose($file); fclose($file);
require 'backend/classes/core/Autoloader.php';
Autoloader::BuildCache(); Autoloader::BuildCache();
$autoloader = new Autoloader(); $autoloader = new Autoloader();
@ -54,6 +60,22 @@ $setupSql = fread($file, filesize('backend/scripts/setup.sql'));
fclose($file); fclose($file);
$db = new MySqlDatabase($hostname, $username, $password, $database); $db = new MySqlDatabase($hostname, $username, $password, $database);
$db->Query($setupSql);
$db->startTransaction();
$db->Query(str_replace('$DB_NAME', $database, $setupSql));
echo 'Let\'s create an admin account...' . PHP_EOL;
$user = new User(null, $db);
$user->setUsername(getUserInput('Username: '));
$user->setPassword(getUserInput('Password: '));
$user->setEmail(getUserInput('Email: '));
$user->setJabberAddress(getUserInput('Jabber address: '));
$user->setAdmin(true);
$user->Save();
$db->commit();
echo 'Ringfinger setup has successfully finished.' . PHP_EOL; echo 'Ringfinger setup has successfully finished.' . PHP_EOL;

View File

@ -1,6 +1,6 @@
START TRANSACTION; START TRANSACTION;
USE ringfinger; USE $DB_NAME;
CREATE TABLE User ( CREATE TABLE User (
UserId int(10) unsigned NOT NULL AUTO_INCREMENT, UserId int(10) unsigned NOT NULL AUTO_INCREMENT,