public static function bootstrap(array $conf, array $server = array())
    {
        $problems = array();

        try {

            Config::load($conf);

            $environment = Config::get('environment');

            date_default_timezone_set(Config::get('timezone'));

            self::setupUtils($server, Config::get('bootstrap.local_temp_directory'), Config::get('logging.storage', 'file'));
            self::loadListeners(BASE_PATH . 'app/' . Config::get('app.name') . '/events.php');
            self::setupErrorHandling($environment);
            self::loadPdoDriver($environment, Config::get($environment . '.db'), Config::get('app.name'));
            self::loadRoutes(
                Config::get('app.routeable'),
                BASE_PATH . 'app/' . Config::get('app.name') . '/routes.php'
            );

        } catch (\Throwable $throwable) {
            $problems[] = $throwable->getMessage();
        } catch (\Exception $exception) {
            $problems[] = $exception->getMessage();
        }

        self::reportIf($problems, PHP_VERSION);
    }