<?php
namespace Szurubooru;

$startTime = microtime(true);

final class Bootstrap
{
	private static $startTime;

	public static function init($startTime)
	{
		self::$startTime = $startTime;
		self::setTimezone();
		self::turnErrorsIntoExceptions();
		self::initAutoloader();
	}

	public static function getStartTime()
	{
		return self::$startTime;
	}

	private static function setTimezone()
	{
		date_default_timezone_set('UTC');
	}

	private static function initAutoloader()
	{
		require(__DIR__
			. DIRECTORY_SEPARATOR . '..'
			. DIRECTORY_SEPARATOR . 'vendor'
			. DIRECTORY_SEPARATOR . 'autoload.php');
	}

	private static function turnErrorsIntoExceptions()
	{
		set_error_handler(
			function($errno, $errstr, $errfile, $errline, array $errcontext)
			{
				throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
			});
	}
}

Bootstrap::init($startTime);