From b0237ddd97e8b1d41476873eefeb4a79f101866c Mon Sep 17 00:00:00 2001
From: Shish <shish@shishnet.org>
Date: Mon, 27 Jan 2020 19:05:43 +0000
Subject: [PATCH] more stuff to util.php

---
 core/_bootstrap.php | 30 +++---------------------------
 core/util.php       | 27 ++++++++++++++++++++++-----
 index.php           |  9 +++++----
 tests/bootstrap.php |  4 ++++
 4 files changed, 34 insertions(+), 36 deletions(-)

diff --git a/core/_bootstrap.php b/core/_bootstrap.php
index c953e07a..a561613f 100644
--- a/core/_bootstrap.php
+++ b/core/_bootstrap.php
@@ -4,47 +4,23 @@
  * actually do anything as far as the app is concerned
  */
 
-global $cache, $config, $database, $user, $page, $_tracer, $tracer_enabled;
+global $cache, $config, $database, $user, $page, $_tracer;
 
 require_once "core/sys_config.php";
 require_once "core/polyfills.php";
 require_once "core/util.php";
 require_once "vendor/autoload.php";
 
-// set up and purify the environment
-_version_check();
 _sanitise_environment();
-
-// The trace system has a certain amount of memory consumption every time it is used,
-// so to prevent running out of memory during complex operations code that uses it should
-// check if tracer output is enabled before making use of it.
-$tracer_enabled = constant('TRACE_FILE')!==null;
-
-// load base files
 $_tracer->begin("Bootstrap");
-require_all(array_merge(
-    zglob("core/*.php"),
-    zglob("core/{".ENABLED_MODS."}/*.php"),
-    zglob("ext/*/info.php")
-));
-
+_load_core_files();
 $cache = new Cache(CACHE_DSN);
 $database = new Database(DATABASE_DSN);
 $config = new DatabaseConfig($database);
-
 ExtensionInfo::load_all_extension_info();
 Extension::determine_enabled_extensions();
 require_all(zglob("ext/{".Extension::get_enabled_extensions_as_string()."}/main.php"));
-
-// load the theme parts
-require_all(_get_themelet_files(get_theme()));
+_load_theme_files();
 $page = new Page();
-
-// hook up event handlers
 _load_event_listeners();
-
-if (AUTO_DB_UPGRADE) {
-    send_event(new DatabaseUpgradeEvent());
-}
-send_event(new InitExtEvent());
 $_tracer->end();
diff --git a/core/util.php b/core/util.php
index 824530e1..66af7561 100644
--- a/core/util.php
+++ b/core/util.php
@@ -477,8 +477,22 @@ function require_all(array $files): void {
     }
 }
 
-function _version_check(): void
+function _load_core_files() {
+    require_all(array_merge(
+        zglob("core/*.php"),
+        zglob("core/{".ENABLED_MODS."}/*.php"),
+        zglob("ext/*/info.php")
+    ));
+}
+
+function _load_theme_files() {
+    require_all(_get_themelet_files(get_theme()));
+}
+
+function _sanitise_environment(): void
 {
+    global $_tracer, $tracer_enabled;
+
     if (MIN_PHP_VERSION) {
         if (version_compare(phpversion(), MIN_PHP_VERSION, ">=") === false) {
             print "
@@ -490,11 +504,10 @@ date and you should plan on moving elsewhere.
             exit;
         }
     }
-}
 
-function _sanitise_environment(): void
-{
-    global $_tracer;
+    if (file_exists("images") && !file_exists("data/images")) {
+        die("As of Shimmie 2.7 images and thumbs should be moved to data/images and data/thumbs");
+    }
 
     if (TIMEZONE) {
         date_default_timezone_set(TIMEZONE);
@@ -506,6 +519,10 @@ function _sanitise_environment(): void
         error_reporting(E_ALL);
     }
 
+    // The trace system has a certain amount of memory consumption every time it is used,
+    // so to prevent running out of memory during complex operations code that uses it should
+    // check if tracer output is enabled before making use of it.
+    $tracer_enabled = constant('TRACE_FILE')!==null;
     $_tracer = new EventTracer();
 
     if (COVERAGE) {
diff --git a/index.php b/index.php
index 42e6693f..c5155302 100644
--- a/index.php
+++ b/index.php
@@ -48,10 +48,6 @@ if (!file_exists("data/config/shimmie.conf.php")) {
     exit;
 }
 
-if (file_exists("images") && !file_exists("data/images")) {
-    die("As of Shimmie 2.7 images and thumbs should be moved to data/images and data/thumbs");
-}
-
 if (!file_exists("vendor/")) {
     //CHECK: Should we just point to install.php instead? Seems unsafe though.
     print <<<EOD
@@ -87,6 +83,11 @@ require_once "core/_bootstrap.php";
 //$_tracer->mark(@$_SERVER["REQUEST_URI"]);
 $_tracer->begin($_SERVER["REQUEST_URI"] ?? "No Request");
 
+if (AUTO_DB_UPGRADE) {
+    send_event(new DatabaseUpgradeEvent());
+}
+send_event(new InitExtEvent());
+
 try {
     // start the page generation waterfall
     $user = _get_user();
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index d412a635..401f8857 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -9,6 +9,10 @@ $_SERVER['QUERY_STRING'] = '/';
 
 chdir(dirname(dirname(__FILE__)));
 require_once "core/_bootstrap.php";
+if (AUTO_DB_UPGRADE) {
+    send_event(new DatabaseUpgradeEvent());
+}
+send_event(new InitExtEvent());
 
 abstract class ShimmiePHPUnitTestCase extends \PHPUnit\Framework\TestCase
 {