<?php $startTime = microtime(true); define('SZURU_VERSION', '0.7.1'); define('SZURU_LINK', 'http://github.com/rr-/szurubooru'); //basic settings and preparation define('DS', DIRECTORY_SEPARATOR); $rootDir = __DIR__ . DS . '..' . DS; date_default_timezone_set('UTC'); setlocale(LC_CTYPE, 'en_US.UTF-8'); ini_set('memory_limit', '128M'); //basic include calls, autoloader init require_once $rootDir . 'lib' . DS . 'TextCaseConverter' . DS . 'TextCaseConverter.php'; require_once $rootDir . 'lib' . DS . 'php-markdown' . DS . 'Michelf' . DS . 'Markdown.php'; require_once $rootDir . 'lib' . DS . 'php-markdown' . DS . 'Michelf' . DS . 'MarkdownExtra.php'; require_once $rootDir . 'lib' . DS . 'chibi-core' . DS . 'include.php'; \Chibi\AutoLoader::registerFilesystem($rootDir . 'lib' . DS . 'chibi-sql'); \Chibi\AutoLoader::registerFilesystem(__DIR__); function getConfig() { global $config; return $config; } function getContext() { global $context; return $context; } function resetEnvironment() { //load config manually global $config; global $rootDir; global $startTime; $configPaths = [ $rootDir . DS . 'data' . DS . 'config.ini', $rootDir . DS . 'data' . DS . 'local.ini', $rootDir . DS . 'tests' . DS . 'test.ini', ]; $config = new \Chibi\Config(); foreach ($configPaths as $path) if (file_exists($path)) $config->loadIni($path); $config->rootDir = $rootDir; //prepare context global $context; $context = new StdClass; $context->startTime = $startTime; //extension sanity checks $requiredExtensions = ['pdo', 'pdo_' . $config->main->dbDriver, 'gd', 'openssl', 'fileinfo']; foreach ($requiredExtensions as $ext) if (!extension_loaded($ext)) die('PHP extension "' . $ext . '" must be enabled to continue.' . PHP_EOL); if (\Chibi\Database::connected()) \Chibi\Database::disconnect(); Auth::setCurrentUser(null); Access::init(); Logger::init(); \Chibi\Database::connect( $config->main->dbDriver, TextHelper::absolutePath($config->main->dbLocation), $config->main->dbUser, $config->main->dbPass); } resetEnvironment();