split www stuff to index.php and test things to tests/bootstrap.php
This commit is contained in:
parent
eb9d63c2a2
commit
7e43e2e304
7 changed files with 71 additions and 83 deletions
|
@ -1,26 +0,0 @@
|
|||
<?php declare(strict_types=1);
|
||||
/*
|
||||
* Load all the files into memory, sanitise the environment, but don't
|
||||
* actually do anything as far as the app is concerned
|
||||
*/
|
||||
|
||||
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";
|
||||
|
||||
_sanitise_environment();
|
||||
$_tracer->begin("Bootstrap");
|
||||
_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_theme_files();
|
||||
$page = new Page();
|
||||
_load_event_listeners();
|
||||
$_tracer->end();
|
|
@ -64,7 +64,7 @@ class Database
|
|||
|
||||
private function connect_engine(): void
|
||||
{
|
||||
if (preg_match("/^([^:]*)/", DATABASE_DSN, $matches)) {
|
||||
if (preg_match("/^([^:]*)/", $this->dsn, $matches)) {
|
||||
$db_proto=$matches[1];
|
||||
} else {
|
||||
throw new SCoreException("Can't figure out database engine");
|
||||
|
|
|
@ -1,22 +1,15 @@
|
|||
<?php declare(strict_types=1);
|
||||
/*
|
||||
* First, load the user-specified settings
|
||||
*/
|
||||
@include_once "data/config/shimmie.conf.php";
|
||||
@include_once "data/config/extensions.conf.php";
|
||||
|
||||
|
||||
/**
|
||||
* For any values that aren't defined in the above files, Shimmie
|
||||
* will set the values to their defaults
|
||||
* For any values that aren't defined in data/config/*.php,
|
||||
* Shimmie will set the values to their defaults
|
||||
*
|
||||
* All of these can be over-ridden by placing a 'define' in data/config/shimmie.conf.php
|
||||
* All of these can be over-ridden by placing a 'define' in
|
||||
* data/config/shimmie.conf.php
|
||||
*
|
||||
* Do NOT change them in this file. These are the defaults only!
|
||||
*
|
||||
* Example:
|
||||
* define("SPEED_HAX", true);
|
||||
*
|
||||
*/
|
||||
|
||||
function _d(string $name, $value): void
|
||||
|
|
|
@ -20,10 +20,6 @@ class Upgrade extends Extension
|
|||
{
|
||||
global $config, $database;
|
||||
|
||||
if ($config->get_bool("in_upgrade")) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!is_numeric($config->get_string("db_version"))) {
|
||||
$this->set_version("db_version", 2);
|
||||
}
|
||||
|
@ -32,19 +28,14 @@ class Upgrade extends Extension
|
|||
// now done again as v9 with PDO
|
||||
|
||||
if ($this->get_version("db_version") < 8) {
|
||||
$config->set_bool("in_upgrade", true);
|
||||
|
||||
$database->execute($database->scoreql_to_sql(
|
||||
"ALTER TABLE images ADD COLUMN locked SCORE_BOOL NOT NULL DEFAULT SCORE_BOOL_N"
|
||||
));
|
||||
|
||||
$this->set_version("db_version", 8);
|
||||
$config->set_bool("in_upgrade", false);
|
||||
}
|
||||
|
||||
if ($this->get_version("db_version") < 9) {
|
||||
$config->set_bool("in_upgrade", true);
|
||||
|
||||
if ($database->get_driver_name() == DatabaseDriver::MYSQL) {
|
||||
$tables = $database->get_col("SHOW TABLES");
|
||||
foreach ($tables as $table) {
|
||||
|
@ -54,34 +45,25 @@ class Upgrade extends Extension
|
|||
}
|
||||
|
||||
$this->set_version("db_version", 9);
|
||||
$config->set_bool("in_upgrade", false);
|
||||
}
|
||||
|
||||
if ($this->get_version("db_version") < 10) {
|
||||
$config->set_bool("in_upgrade", true);
|
||||
|
||||
log_info("upgrade", "Adding foreign keys to images");
|
||||
$database->Execute("ALTER TABLE images ADD FOREIGN KEY (owner_id) REFERENCES users(id) ON DELETE RESTRICT");
|
||||
|
||||
$this->set_version("db_version", 10);
|
||||
$config->set_bool("in_upgrade", false);
|
||||
}
|
||||
|
||||
if ($this->get_version("db_version") < 11) {
|
||||
$config->set_bool("in_upgrade", true);
|
||||
|
||||
log_info("upgrade", "Converting user flags to classes");
|
||||
$database->execute("ALTER TABLE users ADD COLUMN class VARCHAR(32) NOT NULL default :user", ["user" => "user"]);
|
||||
$database->execute("UPDATE users SET class = :name WHERE id=:id", ["name"=>"anonymous", "id"=>$config->get_int('anon_id')]);
|
||||
$database->execute("UPDATE users SET class = :name WHERE admin=:admin", ["name"=>"admin", "admin"=>'Y']);
|
||||
|
||||
$this->set_version("db_version", 11);
|
||||
$config->set_bool("in_upgrade", false);
|
||||
}
|
||||
|
||||
if ($this->get_version("db_version") < 12) {
|
||||
$config->set_bool("in_upgrade", true);
|
||||
|
||||
if ($database->get_driver_name() == DatabaseDriver::PGSQL) {
|
||||
log_info("upgrade", "Changing ext column to VARCHAR");
|
||||
$database->execute("ALTER TABLE images ALTER COLUMN ext SET DATA TYPE VARCHAR(4)");
|
||||
|
@ -91,12 +73,9 @@ class Upgrade extends Extension
|
|||
$database->execute("UPDATE images SET ext = LOWER(ext)");
|
||||
|
||||
$this->set_version("db_version", 12);
|
||||
$config->set_bool("in_upgrade", false);
|
||||
}
|
||||
|
||||
if ($this->get_version("db_version") < 13) {
|
||||
$config->set_bool("in_upgrade", true);
|
||||
|
||||
log_info("upgrade", "Changing password column to VARCHAR(250)");
|
||||
if ($database->get_driver_name() == DatabaseDriver::PGSQL) {
|
||||
$database->execute("ALTER TABLE users ALTER COLUMN pass SET DATA TYPE VARCHAR(250)");
|
||||
|
@ -105,12 +84,9 @@ class Upgrade extends Extension
|
|||
}
|
||||
|
||||
$this->set_version("db_version", 13);
|
||||
$config->set_bool("in_upgrade", false);
|
||||
}
|
||||
|
||||
if ($this->get_version("db_version") < 14) {
|
||||
$config->set_bool("in_upgrade", true);
|
||||
|
||||
log_info("upgrade", "Changing tag column to VARCHAR(255)");
|
||||
if ($database->get_driver_name() == DatabaseDriver::PGSQL) {
|
||||
$database->execute('ALTER TABLE tags ALTER COLUMN tag SET DATA TYPE VARCHAR(255)');
|
||||
|
@ -123,12 +99,9 @@ class Upgrade extends Extension
|
|||
}
|
||||
|
||||
$this->set_version("db_version", 14);
|
||||
$config->set_bool("in_upgrade", false);
|
||||
}
|
||||
|
||||
if ($this->get_version("db_version") < 15) {
|
||||
$config->set_bool("in_upgrade", true);
|
||||
|
||||
log_info("upgrade", "Adding lower indexes for postgresql use");
|
||||
if ($database->get_driver_name() == DatabaseDriver::PGSQL) {
|
||||
$database->execute('CREATE INDEX tags_lower_tag_idx ON tags ((lower(tag)))');
|
||||
|
@ -136,12 +109,9 @@ class Upgrade extends Extension
|
|||
}
|
||||
|
||||
$this->set_version("db_version", 15);
|
||||
$config->set_bool("in_upgrade", false);
|
||||
}
|
||||
|
||||
if ($this->get_version("db_version") < 16) {
|
||||
$config->set_bool("in_upgrade", true);
|
||||
|
||||
log_info("upgrade", "Adding tag_id, image_id index to image_tags");
|
||||
$database->execute('CREATE UNIQUE INDEX image_tags_tag_id_image_id_idx ON image_tags(tag_id,image_id) ');
|
||||
|
||||
|
@ -158,12 +128,9 @@ class Upgrade extends Extension
|
|||
// SQLite doesn't support altering existing columns? This seems like a problem?
|
||||
|
||||
$this->set_version("db_version", 16);
|
||||
$config->set_bool("in_upgrade", false);
|
||||
}
|
||||
|
||||
if ($this->get_version("db_version") < 17) {
|
||||
$config->set_bool("in_upgrade", true);
|
||||
|
||||
log_info("upgrade", "Adding media information columns to images table");
|
||||
$database->execute($database->scoreql_to_sql(
|
||||
"ALTER TABLE images ADD COLUMN lossless SCORE_BOOL NULL"
|
||||
|
@ -197,7 +164,6 @@ class Upgrade extends Extension
|
|||
$database->execute('CREATE INDEX images_ext_idx ON images(ext)');
|
||||
|
||||
$this->set_version("db_version", 17);
|
||||
$config->set_bool("in_upgrade", false);
|
||||
}
|
||||
|
||||
if ($this->get_version("db_version") < 18) {
|
||||
|
@ -215,7 +181,6 @@ class Upgrade extends Extension
|
|||
$database->execute($database->scoreql_to_sql("UPDATE images SET audio = SCORE_BOOL_N WHERE ext IN ('webp')"));
|
||||
$database->execute($database->scoreql_to_sql("UPDATE images SET lossless = SCORE_BOOL_N, video = SCORE_BOOL_Y WHERE ext IN ('flv','mp4','m4v','ogv','webm')"));
|
||||
$this->set_version("db_version", 18);
|
||||
$config->set_bool("in_upgrade", false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
38
index.php
38
index.php
|
@ -43,6 +43,10 @@
|
|||
* Each of these can be imported at the start of a function with eg "global $page, $user;"
|
||||
*/
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
|
||||
* Make sure that shimmie is correctly installed *
|
||||
\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
if (!file_exists("data/config/shimmie.conf.php")) {
|
||||
require_once "core/_install.php";
|
||||
exit;
|
||||
|
@ -79,7 +83,39 @@ EOD;
|
|||
exit;
|
||||
}
|
||||
|
||||
require_once "core/_bootstrap.php";
|
||||
require_once "vendor/autoload.php";
|
||||
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
|
||||
* Load files *
|
||||
\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
@include_once "data/config/shimmie.conf.php";
|
||||
@include_once "data/config/extensions.conf.php";
|
||||
require_once "core/sys_config.php";
|
||||
require_once "core/polyfills.php";
|
||||
require_once "core/util.php";
|
||||
|
||||
global $cache, $config, $database, $user, $page, $_tracer;
|
||||
_sanitise_environment();
|
||||
$_tracer->begin("Bootstrap");
|
||||
_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_theme_files();
|
||||
$page = new Page();
|
||||
_load_event_listeners();
|
||||
$_tracer->end();
|
||||
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
|
||||
* Send events, display output *
|
||||
\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
//$_tracer->mark(@$_SERVER["REQUEST_URI"]);
|
||||
$_tracer->begin($_SERVER["REQUEST_URI"] ?? "No Request");
|
||||
|
||||
|
|
|
@ -1,14 +1,29 @@
|
|||
<?php
|
||||
define("UNITTEST", true);
|
||||
define("TIMEZONE", 'UTC');
|
||||
define("EXTRA_EXTS", str_replace("ext/", "", implode(',', glob('ext/*'))));
|
||||
define("BASE_HREF", "/");
|
||||
define("CLI_LOG_LEVEL", 50);
|
||||
chdir(dirname(dirname(__FILE__)));
|
||||
require_once "vendor/autoload.php";
|
||||
require_once "tests/defines.php";
|
||||
require_once "core/sys_config.php";
|
||||
require_once "core/polyfills.php";
|
||||
require_once "core/util.php";
|
||||
|
||||
$_SERVER['QUERY_STRING'] = '/';
|
||||
|
||||
chdir(dirname(dirname(__FILE__)));
|
||||
require_once "core/_bootstrap.php";
|
||||
global $cache, $config, $database, $user, $page, $_tracer;
|
||||
_sanitise_environment();
|
||||
_load_core_files();
|
||||
$cache = new Cache(CACHE_DSN);
|
||||
$id = bin2hex(random_bytes(5));
|
||||
$database = new Database("sqlite:data/shimmie.test.$id.sqlite");
|
||||
create_dirs();
|
||||
create_tables($database);
|
||||
$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_theme_files();
|
||||
$page = new Page();
|
||||
_load_event_listeners();
|
||||
|
||||
if (AUTO_DB_UPGRADE) {
|
||||
send_event(new DatabaseUpgradeEvent());
|
||||
}
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
<?php
|
||||
define("UNITTEST", true);
|
||||
define("EXTRA_EXTS", str_replace("ext/", "", implode(',', glob('ext/*'))));
|
||||
|
||||
define("DATABASE_DSN", null);
|
||||
define("DATABASE_TIMEOUT", 10000);
|
||||
define("CACHE_DSN", null);
|
||||
|
@ -12,8 +15,6 @@ define("NICE_URLS", false);
|
|||
define("SEARCH_ACCEL", false);
|
||||
define("WH_SPLITS", 1);
|
||||
define("VERSION", '2.8-dev');
|
||||
define("TIMEZONE", null);
|
||||
define("EXTRA_EXTS", "");
|
||||
define("BASE_URL", null);
|
||||
define("MIN_PHP_VERSION", '7.3');
|
||||
define("TRACE_FILE", null);
|
||||
|
@ -21,3 +22,7 @@ define("TRACE_THRESHOLD", 0.0);
|
|||
define("ENABLED_MODS", "imageboard");
|
||||
define("SCORE_VERSION", 'develop/'.VERSION);
|
||||
define("AUTO_DB_UPGRADE", true);
|
||||
define("TIMEZONE", 'UTC');
|
||||
define("BASE_HREF", "/");
|
||||
define("CLI_LOG_LEVEL", 50);
|
||||
|
||||
|
|
Reference in a new issue