From e08cdb1638a995973d5796b43c2418bbadceb288 Mon Sep 17 00:00:00 2001 From: Shish Date: Wed, 2 Oct 2019 10:49:32 +0100 Subject: [PATCH] make Cache its own thing, separate from Database --- core/_bootstrap.php | 7 +++++-- core/config.php | 10 +++++++--- core/database.php | 19 ------------------- core/imageboard/image.php | 18 +++++++++--------- core/user.php | 12 ++++++------ core/util.php | 8 ++++---- ext/autocomplete/main.php | 6 +++--- ext/blocks/main.php | 10 +++++----- ext/comment/main.php | 12 ++++++------ ext/featured/main.php | 6 +++--- ext/index/main.php | 10 +++++----- ext/ipban/main.php | 14 +++++++------- ext/log_db/main.php | 6 +++--- ext/pm/main.php | 16 ++++++++-------- ext/regen_thumb/main.php | 4 ++-- ext/report_image/main.php | 22 +++++++++++----------- ext/rss_images/main.php | 6 +++--- ext/statsd/main.php | 6 +++--- ext/tag_list/main.php | 24 ++++++++++++------------ ext/upload/main.php | 6 +++--- 20 files changed, 105 insertions(+), 117 deletions(-) diff --git a/core/_bootstrap.php b/core/_bootstrap.php index 11cfc193..fc3277ea 100644 --- a/core/_bootstrap.php +++ b/core/_bootstrap.php @@ -4,7 +4,7 @@ * actually do anything as far as the app is concerned */ -global $config, $database, $user, $page, $_tracer; +global $cache, $config, $database, $user, $page, $_tracer; require_once "core/sys_config.php"; require_once "core/polyfills.php"; @@ -37,7 +37,10 @@ unset($_shm_files); unset($_shm_filename); $_tracer->end(); -// connect to the database +$_tracer->begin("Connecting to Cache"); +$cache = new Cache(CACHE_DSN); +$_tracer->end(); + $_tracer->begin("Connecting to DB"); $database = new Database(); $config = new DatabaseConfig($database); diff --git a/core/config.php b/core/config.php index 40875f07..1bd1e3ac 100644 --- a/core/config.php +++ b/core/config.php @@ -319,6 +319,8 @@ class DatabaseConfig extends BaseConfig string $sub_column = null, string $sub_value = null ) { + global $cache; + $this->database = $database; $this->table_name = $table_name; $this->sub_value = $sub_value; @@ -329,7 +331,7 @@ class DatabaseConfig extends BaseConfig $cache_name .= "_".$sub_value; } - $cached = $this->database->cache->get($cache_name); + $cached = $cache->get($cache_name); if ($cached) { $this->values = $cached; } else { @@ -346,12 +348,14 @@ class DatabaseConfig extends BaseConfig foreach ($this->database->get_all($query, $args) as $row) { $this->values[$row["name"]] = $row["value"]; } - $this->database->cache->set($cache_name, $this->values); + $cache->set($cache_name, $this->values); } } public function save(string $name=null): void { + global $cache; + if (is_null($name)) { reset($this->values); // rewind the array to the first element foreach ($this->values as $name => $value) { @@ -379,7 +383,7 @@ class DatabaseConfig extends BaseConfig } // rather than deleting and having some other request(s) do a thundering // herd of race-conditioned updates, just save the updated version once here - $this->database->cache->set("config", $this->values); + $cache->set("config", $this->values); } } diff --git a/core/database.php b/core/database.php index d2b7b65c..3c06c5a3 100644 --- a/core/database.php +++ b/core/database.php @@ -29,12 +29,6 @@ class Database */ private $engine = null; - /** - * The currently active cache engine. - * @var Cache|null - */ - public $cache = null; - /** * A boolean flag to track if we already have an active transaction. * (ie: True if beginTransaction() already called) @@ -48,16 +42,6 @@ class Database */ public $query_count = 0; - /** - * For now, only connect to the cache, as we will pretty much certainly - * need it. There are some pages where all the data is in cache, so the - * DB connection is on-demand. - */ - public function __construct() - { - $this->cache = new Cache(CACHE_DSN); - } - private function connect_db(): void { # FIXME: detect ADODB URI, automatically translate PDO DSN @@ -364,12 +348,9 @@ class MockDatabase extends Database private $query_id = 0; /** @var array */ private $responses = []; - /** @var ?NoCache */ - public $cache = null; public function __construct(array $responses = []) { - $this->cache = new NoCache(); $this->responses = $responses; } diff --git a/core/imageboard/image.php b/core/imageboard/image.php index 4ad9ae75..2c1a632e 100644 --- a/core/imageboard/image.php +++ b/core/imageboard/image.php @@ -41,16 +41,16 @@ class Image /** @var int */ public $owner_id; - + /** @var string */ public $owner_ip; - + /** @var string */ public $posted; - + /** @var string */ public $source; - + /** @var boolean */ public $locked = false; @@ -291,14 +291,14 @@ class Image */ public static function count_images(array $tags=[]): int { - global $database; + global $cache, $database; $tag_count = count($tags); if ($tag_count === 0) { - $total = $database->cache->get("image-count"); + $total = $cache->get("image-count"); if (!$total) { $total = $database->get_one("SELECT COUNT(*) FROM images"); - $database->cache->set("image-count", $total, 600); + $cache->set("image-count", $total, 600); } } elseif ($tag_count === 1 && !preg_match("/[:=><\*\?]/", $tags[0])) { $total = $database->get_one( @@ -682,7 +682,7 @@ class Image */ public function set_tags(array $unfiltered_tags): void { - global $database; + global $cache, $database; $unfiltered_tags = array_unique($unfiltered_tags); @@ -755,7 +755,7 @@ class Image } log_info("core_image", "Tags for Image #{$this->id} set to: ".Tag::implode($tags), null, ["image_id" => $this->id]); - $database->cache->delete("image-{$this->id}-tags"); + $cache->delete("image-{$this->id}-tags"); } } diff --git a/core/user.php b/core/user.php index a1e46680..bd72ef31 100644 --- a/core/user.php +++ b/core/user.php @@ -66,8 +66,8 @@ class User public static function by_session(string $name, string $session): ?User { - global $config, $database; - $row = $database->cache->get("user-session:$name-$session"); + global $cache, $config, $database; + $row = $cache->get("user-session:$name-$session"); if (!$row) { if ($database->get_driver_name() === DatabaseDriver::MYSQL) { $query = "SELECT * FROM users WHERE name = :name AND md5(concat(pass, :ip)) = :sess"; @@ -75,23 +75,23 @@ class User $query = "SELECT * FROM users WHERE name = :name AND md5(pass || :ip) = :sess"; } $row = $database->get_row($query, ["name"=>$name, "ip"=>get_session_ip($config), "sess"=>$session]); - $database->cache->set("user-session:$name-$session", $row, 600); + $cache->set("user-session:$name-$session", $row, 600); } return is_null($row) ? null : new User($row); } public static function by_id(int $id): ?User { - global $database; + global $cache, $database; if ($id === 1) { - $cached = $database->cache->get('user-id:'.$id); + $cached = $cache->get('user-id:'.$id); if ($cached) { return new User($cached); } } $row = $database->get_row("SELECT * FROM users WHERE id = :id", ["id"=>$id]); if ($id === 1) { - $database->cache->set('user-id:'.$id, $row, 600); + $cache->set('user-id:'.$id, $row, 600); } return is_null($row) ? null : new User($row); } diff --git a/core/util.php b/core/util.php index fe3bec45..70b5f2ea 100644 --- a/core/util.php +++ b/core/util.php @@ -305,7 +305,7 @@ function path_to_tags(string $path): string $path = dirname($path); $path = str_replace(";", ":", $path); $path = str_replace("__", " ", $path); - + $category = ""; foreach (explode("/", $path) as $dir) { @@ -366,7 +366,7 @@ $_shm_load_start = microtime(true); */ function get_debug_info(): string { - global $config, $_shm_event_count, $database, $_shm_load_start; + global $cache, $config, $_shm_event_count, $database, $_shm_load_start; $i_mem = sprintf("%5.2f", ((memory_get_peak_usage(true)+512)/1024)/1024); @@ -378,8 +378,8 @@ function get_debug_info(): string $time = sprintf("%.2f", microtime(true) - $_shm_load_start); $dbtime = sprintf("%.2f", $database->dbtime); $i_files = count(get_included_files()); - $hits = $database->cache->get_hits(); - $miss = $database->cache->get_misses(); + $hits = $cache->get_hits(); + $miss = $cache->get_misses(); $debug = "
Took $time seconds (db:$dbtime) and {$i_mem}MB of RAM"; $debug .= "; Used $i_files files and {$database->query_count} queries"; diff --git a/ext/autocomplete/main.php b/ext/autocomplete/main.php index 48d862c4..2c544a34 100644 --- a/ext/autocomplete/main.php +++ b/ext/autocomplete/main.php @@ -9,7 +9,7 @@ class AutoComplete extends Extension public function onPageRequest(PageRequestEvent $event) { - global $page, $database; + global $cache, $page, $database; if ($event->page_matches("api/internal/autocomplete")) { if (!isset($_GET["s"])) { @@ -42,7 +42,7 @@ class AutoComplete extends Extension $cache_key .= "-" . $_GET["limit"]; } - $res = $database->cache->get($cache_key); + $res = $cache->get($cache_key); if (!$res) { $res = $database->get_pairs( $database->scoreql_to_sql(" @@ -55,7 +55,7 @@ class AutoComplete extends Extension $limitSQL"), $SQLarr ); - $database->cache->set($cache_key, $res, 600); + $cache->set($cache_key, $res, 600); } $page->set_data(json_encode($res)); diff --git a/ext/blocks/main.php b/ext/blocks/main.php index de2c2ab9..ccfaf2f6 100644 --- a/ext/blocks/main.php +++ b/ext/blocks/main.php @@ -39,12 +39,12 @@ class Blocks extends Extension public function onPageRequest(PageRequestEvent $event) { - global $database, $page, $user; + global $cache, $database, $page, $user; - $blocks = $database->cache->get("blocks"); + $blocks = $cache->get("blocks"); if ($blocks === false) { $blocks = $database->get_all("SELECT * FROM blocks"); - $database->cache->set("blocks", $blocks, 600); + $cache->set("blocks", $blocks, 600); } foreach ($blocks as $block) { $path = implode("/", $event->args); @@ -63,7 +63,7 @@ class Blocks extends Extension VALUES (?, ?, ?, ?, ?) ", [$_POST['pages'], $_POST['title'], $_POST['area'], (int)$_POST['priority'], $_POST['content']]); log_info("blocks", "Added Block #".($database->get_last_insert_id('blocks_id_seq'))." (".$_POST['title'].")"); - $database->cache->delete("blocks"); + $cache->delete("blocks"); $page->set_mode(PageMode::REDIRECT); $page->set_redirect(make_link("blocks/list")); } @@ -83,7 +83,7 @@ class Blocks extends Extension ", [$_POST['pages'], $_POST['title'], $_POST['area'], (int)$_POST['priority'], $_POST['content'], $_POST['id']]); log_info("blocks", "Updated Block #".$_POST['id']." (".$_POST['title'].")"); } - $database->cache->delete("blocks"); + $cache->delete("blocks"); $page->set_mode(PageMode::REDIRECT); $page->set_redirect(make_link("blocks/list")); } diff --git a/ext/comment/main.php b/ext/comment/main.php index ffaccb15..b3bc2542 100644 --- a/ext/comment/main.php +++ b/ext/comment/main.php @@ -263,13 +263,13 @@ class CommentList extends Extension public function onPostListBuilding(PostListBuildingEvent $event) { - global $config, $database; + global $cache, $config, $database; $cc = $config->get_int("comment_count"); if ($cc > 0) { - $recent = $database->cache->get("recent_comments"); + $recent = $cache->get("recent_comments"); if (empty($recent)) { $recent = $this->get_recent_comments($cc); - $database->cache->set("recent_comments", $recent, 60); + $cache->set("recent_comments", $recent, 60); } if (count($recent) > 0) { $this->theme->display_recent_comments($recent); @@ -370,17 +370,17 @@ class CommentList extends Extension // page building {{{ private function build_page(int $current_page) { - global $database, $user; + global $cache, $database, $user; $where = SPEED_HAX ? "WHERE posted > now() - interval '24 hours'" : ""; - $total_pages = $database->cache->get("comment_pages"); + $total_pages = $cache->get("comment_pages"); if (empty($total_pages)) { $total_pages = (int)($database->get_one(" SELECT COUNT(c1) FROM (SELECT COUNT(image_id) AS c1 FROM comments $where GROUP BY image_id) AS s1 ") / 10); - $database->cache->set("comment_pages", $total_pages, 600); + $cache->set("comment_pages", $total_pages, 600); } $total_pages = max($total_pages, 1); diff --git a/ext/featured/main.php b/ext/featured/main.php index 8d4d96c9..63bc9cdb 100644 --- a/ext/featured/main.php +++ b/ext/featured/main.php @@ -42,16 +42,16 @@ class Featured extends Extension public function onPostListBuilding(PostListBuildingEvent $event) { - global $config, $database, $page, $user; + global $cache, $config, $database, $page, $user; $fid = $config->get_int("featured_id"); if ($fid > 0) { - $image = $database->cache->get("featured_image_object:$fid"); + $image = $cache->get("featured_image_object:$fid"); if ($image === false) { $image = Image::by_id($fid); if ($image) { // make sure the object is fully populated before saving $image->get_tag_array(); } - $database->cache->set("featured_image_object:$fid", $image, 600); + $cache->set("featured_image_object:$fid", $image, 600); } if (!is_null($image)) { if (Extension::is_enabled(RatingsInfo::KEY)) { diff --git a/ext/index/main.php b/ext/index/main.php index 5d136b20..a5261c47 100644 --- a/ext/index/main.php +++ b/ext/index/main.php @@ -79,7 +79,7 @@ class Index extends Extension public function onPageRequest(PageRequestEvent $event) { - global $database, $page, $user; + global $cache, $page, $user; if ($event->page_matches("post/list")) { if (isset($_GET['search'])) { // implode(explode()) to resolve aliases and sanitise @@ -123,10 +123,10 @@ class Index extends Extension } if ($count_search_terms === 0 && ($page_number < 10)) { // extra caching for the first few post/list pages - $images = $database->cache->get("post-list:$page_number"); + $images = $cache->get("post-list:$page_number"); if (!$images) { $images = Image::find_images(($page_number-1)*$page_size, $page_size, $search_terms); - $database->cache->set("post-list:$page_number", $images, 60); + $cache->set("post-list:$page_number", $images, 60); } } } @@ -175,9 +175,9 @@ class Index extends Extension public function onImageInfoSet(ImageInfoSetEvent $event) { - global $database; + global $cache; if (SPEED_HAX) { - $database->cache->delete("thumb-block:{$event->image->id}"); + $cache->delete("thumb-block:{$event->image->id}"); } } diff --git a/ext/ipban/main.php b/ext/ipban/main.php index 6b9dad94..52b92fd9 100644 --- a/ext/ipban/main.php +++ b/ext/ipban/main.php @@ -113,20 +113,20 @@ class IPBan extends Extension public function onAddIPBan(AddIPBanEvent $event) { - global $user, $database; + global $cache, $user, $database; $sql = "INSERT INTO bans (ip, reason, end_timestamp, banner_id) VALUES (:ip, :reason, :end, :admin_id)"; $database->Execute($sql, ["ip"=>$event->ip, "reason"=>$event->reason, "end"=>strtotime($event->end), "admin_id"=>$user->id]); - $database->cache->delete("ip_bans_sorted"); + $cache->delete("ip_bans_sorted"); log_info("ipban", "Banned {$event->ip} because '{$event->reason}' until {$event->end}"); } public function onRemoveIPBan(RemoveIPBanEvent $event) { - global $database; + global $cache, $database; $ban = $database->get_row("SELECT * FROM bans WHERE id = :id", ["id"=>$event->id]); if ($ban) { $database->Execute("DELETE FROM bans WHERE id = :id", ["id"=>$event->id]); - $database->cache->delete("ip_bans_sorted"); + $cache->delete("ip_bans_sorted"); log_info("ipban", "Removed {$ban['ip']}'s ban"); } } @@ -306,9 +306,9 @@ class IPBan extends Extension // returns [ips, nets] private function get_active_bans_sorted() { - global $database; + global $cache; - $cached = $database->cache->get("ip_bans_sorted"); + $cached = $cache->get("ip_bans_sorted"); if ($cached) { return $cached; } @@ -325,7 +325,7 @@ class IPBan extends Extension } $sorted = [$ips, $nets]; - $database->cache->set("ip_bans_sorted", $sorted, 600); + $cache->set("ip_bans_sorted", $sorted, 600); return $sorted; } // }}} diff --git a/ext/log_db/main.php b/ext/log_db/main.php index a60567f3..97958a15 100644 --- a/ext/log_db/main.php +++ b/ext/log_db/main.php @@ -39,7 +39,7 @@ class LogDatabase extends Extension public function onPageRequest(PageRequestEvent $event) { - global $database, $user; + global $cache, $database, $user; if ($event->page_matches("log/view")) { if ($user->can(Permissions::VIEW_EVENTLOG)) { $wheres = []; @@ -95,12 +95,12 @@ class LogDatabase extends Extension $limit = 50; $offset = ($page_num-1) * $limit; - $page_total = $database->cache->get("event_log_length"); + $page_total = $cache->get("event_log_length"); if (!$page_total) { $page_total = $database->get_one("SELECT count(*) FROM score_log $where", $args); // don't cache a length of zero when the extension is first installed if ($page_total > 10) { - $database->cache->set("event_log_length", $page_total, 600); + $cache->set("event_log_length", $page_total, 600); } } diff --git a/ext/pm/main.php b/ext/pm/main.php index a717c0c8..400c9bc0 100644 --- a/ext/pm/main.php +++ b/ext/pm/main.php @@ -122,7 +122,7 @@ class PrivMsg extends Extension public function onPageRequest(PageRequestEvent $event) { - global $database, $page, $user; + global $cache, $database, $page, $user; if ($event->page_matches("pm")) { if (!$user->is_anonymous()) { switch ($event->get_arg(0)) { @@ -135,7 +135,7 @@ class PrivMsg extends Extension $from_user = User::by_id(int_escape($pm["from_id"])); if ($pm["to_id"] == $user->id) { $database->execute("UPDATE private_message SET is_read='Y' WHERE id = :id", ["id" => $pm_id]); - $database->cache->delete("pm-count-{$user->id}"); + $cache->delete("pm-count-{$user->id}"); } $this->theme->display_message($page, $from_user, $user, new PM($pm)); } else { @@ -150,7 +150,7 @@ class PrivMsg extends Extension $this->theme->display_error(404, "No such PM", "There is no PM #$pm_id"); } elseif (($pm["to_id"] == $user->id) || $user->can(Permissions::VIEW_OTHER_PMS)) { $database->execute("DELETE FROM private_message WHERE id = :id", ["id" => $pm_id]); - $database->cache->delete("pm-count-{$user->id}"); + $cache->delete("pm-count-{$user->id}"); log_info("pm", "Deleted PM #$pm_id", "PM deleted"); $page->set_mode(PageMode::REDIRECT); $page->set_redirect($_SERVER["HTTP_REFERER"]); @@ -179,7 +179,7 @@ class PrivMsg extends Extension public function onSendPM(SendPMEvent $event) { - global $database; + global $cache, $database; $database->execute( " INSERT INTO private_message( @@ -189,7 +189,7 @@ class PrivMsg extends Extension ["fromid" => $event->pm->from_id, "fromip" => $event->pm->from_ip, "toid" => $event->pm->to_id, "subject" => $event->pm->subject, "message" => $event->pm->message] ); - $database->cache->delete("pm-count-{$event->pm->to_id}"); + $cache->delete("pm-count-{$event->pm->to_id}"); log_info("pm", "Sent PM to User #{$event->pm->to_id}"); } @@ -216,9 +216,9 @@ class PrivMsg extends Extension private function count_pms(User $user) { - global $database; + global $cache, $database; - $count = $database->cache->get("pm-count:{$user->id}"); + $count = $cache->get("pm-count:{$user->id}"); if (is_null($count) || $count === false) { $count = $database->get_one(" SELECT count(*) @@ -226,7 +226,7 @@ class PrivMsg extends Extension WHERE to_id = :to_id AND is_read = :is_read ", ["to_id" => $user->id, "is_read" => "N"]); - $database->cache->set("pm-count:{$user->id}", $count, 600); + $cache->set("pm-count:{$user->id}", $count, 600); } return $count; } diff --git a/ext/regen_thumb/main.php b/ext/regen_thumb/main.php index f20c6dde..31de0ed7 100644 --- a/ext/regen_thumb/main.php +++ b/ext/regen_thumb/main.php @@ -5,10 +5,10 @@ class RegenThumb extends Extension { public function regenerate_thumbnail($image, $force = true): string { - global $database; + global $cache; $event = new ThumbnailGenerationEvent($image->hash, $image->ext, $force); send_event($event); - $database->cache->delete("thumb-block:{$image->id}"); + $cache->delete("thumb-block:{$image->id}"); return $event->generated; } diff --git a/ext/report_image/main.php b/ext/report_image/main.php index 5e7015dd..142ae465 100644 --- a/ext/report_image/main.php +++ b/ext/report_image/main.php @@ -89,21 +89,21 @@ class ReportImage extends Extension public function onAddReportedImage(AddReportedImageEvent $event) { - global $database; + global $cache, $database; log_info("report_image", "Adding report of Image #{$event->report->image_id} with reason '{$event->report->reason}'", null, ["image_id" => $event->report->image_id]); $database->Execute( "INSERT INTO image_reports(image_id, reporter_id, reason) VALUES (?, ?, ?)", [$event->report->image_id, $event->report->user_id, $event->report->reason] ); - $database->cache->delete("image-report-count"); + $cache->delete("image-report-count"); } public function onRemoveReportedImage(RemoveReportedImageEvent $event) { - global $database; + global $cache, $database; $database->Execute("DELETE FROM image_reports WHERE id = ?", [$event->id]); - $database->cache->delete("image-report-count"); + $cache->delete("image-report-count"); } public function onUserPageBuilding(UserPageBuildingEvent $event) @@ -149,9 +149,9 @@ class ReportImage extends Extension public function onImageDeletion(ImageDeletionEvent $event) { - global $database; + global $cache, $database; $database->Execute("DELETE FROM image_reports WHERE image_id = ?", [$event->image->id]); - $database->cache->delete("image-report-count"); + $cache->delete("image-report-count"); } public function onUserDeletion(UserDeletionEvent $event) @@ -176,9 +176,9 @@ class ReportImage extends Extension public function delete_reports_by(int $user_id) { - global $database; + global $cache, $database; $database->execute("DELETE FROM image_reports WHERE reporter_id=?", [$user_id]); - $database->cache->delete("image-report-count"); + $cache->delete("image-report-count"); } protected function install() @@ -247,12 +247,12 @@ class ReportImage extends Extension public function count_reported_images(): int { - global $database; + global $cache, $database; - $count = $database->cache->get("image-report-count"); + $count = $cache->get("image-report-count"); if (is_null($count) || $count === false) { $count = $database->get_one("SELECT count(*) FROM image_reports"); - $database->cache->set("image-report-count", $count, 600); + $cache->set("image-report-count", $count, 600); } return $count; diff --git a/ext/rss_images/main.php b/ext/rss_images/main.php index f6cf9632..c12ad1db 100644 --- a/ext/rss_images/main.php +++ b/ext/rss_images/main.php @@ -76,9 +76,9 @@ class RSSImages extends Extension private function thumb(Image $image): string { - global $database; + global $cache, $database; - $cached = $database->cache->get("rss-thumb:{$image->id}"); + $cached = $cache->get("rss-thumb:{$image->id}"); if ($cached) { return $cached; } @@ -106,7 +106,7 @@ class RSSImages extends Extension "; - $database->cache->set("rss-thumb:{$image->id}", $data, 3600); + $cache->set("rss-thumb:{$image->id}", $data, 3600); return $data; } diff --git a/ext/statsd/main.php b/ext/statsd/main.php index dd0b0be3..e732609a 100644 --- a/ext/statsd/main.php +++ b/ext/statsd/main.php @@ -13,7 +13,7 @@ class StatsDInterface extends Extension private function _stats(string $type) { - global $_shm_event_count, $database, $_shm_load_start; + global $_shm_event_count, $cache, $database, $_shm_load_start; $time = microtime(true) - $_shm_load_start; StatsDInterface::$stats["shimmie.$type.hits"] = "1|c"; StatsDInterface::$stats["shimmie.$type.time"] = "$time|ms"; @@ -22,8 +22,8 @@ class StatsDInterface extends Extension StatsDInterface::$stats["shimmie.$type.files"] = count(get_included_files())."|c"; StatsDInterface::$stats["shimmie.$type.queries"] = $database->query_count."|c"; StatsDInterface::$stats["shimmie.$type.events"] = $_shm_event_count."|c"; - StatsDInterface::$stats["shimmie.$type.cache-hits"] = $database->cache->get_hits()."|c"; - StatsDInterface::$stats["shimmie.$type.cache-misses"] = $database->cache->get_misses()."|c"; + StatsDInterface::$stats["shimmie.$type.cache-hits"] = $cache->get_hits()."|c"; + StatsDInterface::$stats["shimmie.$type.cache-misses"] = $cache->get_misses()."|c"; } public function onPageRequest(PageRequestEvent $event) diff --git a/ext/tag_list/main.php b/ext/tag_list/main.php index 88f92793..a1ce5aab 100644 --- a/ext/tag_list/main.php +++ b/ext/tag_list/main.php @@ -20,7 +20,7 @@ class TagList extends Extension public function onPageRequest(PageRequestEvent $event) { - global $page, $database; + global $cache, $page, $database; if ($event->page_matches("tags")) { $this->theme->set_navigation($this->build_navigation()); @@ -60,7 +60,7 @@ class TagList extends Extension } $res = null; - $database->cache->get($cache_key); + $cache->get($cache_key); if (!$res) { $res = $database->get_col($database->scoreql_to_sql(" SELECT tag @@ -69,7 +69,7 @@ class TagList extends Extension AND count > 0 $limitSQL "), $SQLarr); - $database->cache->set($cache_key, $res, 600); + $cache->set($cache_key, $res, 600); } $page->set_mode(PageMode::DATA); @@ -183,10 +183,10 @@ class TagList extends Extension private static function get_omitted_tags(): array { - global $config, $database; + global $cache, $config, $database; $tags_config = $config->get_string(TagListConfig::OMIT_TAGS); - $results = $database->cache->get("tag_list_omitted_tags:".$tags_config); + $results = $cache->get("tag_list_omitted_tags:".$tags_config); if ($results==null) { $results = []; @@ -213,7 +213,7 @@ class TagList extends Extension $results = $database->get_col("SELECT id FROM tags WHERE " . implode(" OR ", $where), $args); - $database->cache->set("tag_list_omitted_tags:" . $tags_config, $results, 600); + $cache->set("tag_list_omitted_tags:" . $tags_config, $results, 600); } return $results; } @@ -531,9 +531,9 @@ class TagList extends Extension private function add_popular_block(Page $page) { - global $database, $config; + global $cache, $database, $config; - $tags = $database->cache->get("popular_tags"); + $tags = $cache->get("popular_tags"); if (empty($tags)) { $omitted_tags = self::get_omitted_tags(); @@ -560,7 +560,7 @@ class TagList extends Extension $tags = $database->get_all($query, $args); - $database->cache->set("popular_tags", $tags, 600); + $cache->set("popular_tags", $tags, 600); } if (count($tags) > 0) { $this->theme->display_popular_block($page, $tags); @@ -589,12 +589,12 @@ class TagList extends Extension public static function get_related_tags(array $search, int $limit): array { - global $config, $database; + global $cache, $database; $wild_tags = $search; $str_search = Tag::implode($search); - $related_tags = $database->cache->get("related_tags:$str_search"); + $related_tags = $cache->get("related_tags:$str_search"); if (empty($related_tags)) { // $search_tags = array(); @@ -645,7 +645,7 @@ class TagList extends Extension $args = ["limit" => $limit]; $related_tags = $database->get_all($query, $args); - $database->cache->set("related_tags:$str_search", $related_tags, 60 * 60); + $cache->set("related_tags:$str_search", $related_tags, 60 * 60); } } if ($related_tags === false) { diff --git a/ext/upload/main.php b/ext/upload/main.php index 36d61289..356db988 100644 --- a/ext/upload/main.php +++ b/ext/upload/main.php @@ -165,7 +165,7 @@ class Upload extends Extension public function onPageRequest(PageRequestEvent $event) { - global $database, $page, $user; + global $cache, $page, $user; if ($user->can(Permissions::CREATE_IMAGE)) { if ($this->is_full) { @@ -219,14 +219,14 @@ class Upload extends Extension } } } - $database->cache->delete("thumb-block:{$image_id}"); + $cache->delete("thumb-block:{$image_id}"); $this->theme->display_upload_status($page, $ok); } elseif (!empty($_GET['url'])) { $url = $_GET['url']; $tags = isset($_GET['tags']) ? Tag::explode($_GET['tags']) : 'tagme'; $source = isset($_GET['source']) ? $_GET['source'] : $url; $ok = $this->try_transload($url, $tags, $source, $image_id); - $database->cache->delete("thumb-block:{$image_id}"); + $cache->delete("thumb-block:{$image_id}"); $this->theme->display_upload_status($page, $ok); } else { $this->theme->display_replace_page($page, $image_id);