From dcf0135285f1a515454807cdfe1e819f37a23a86 Mon Sep 17 00:00:00 2001
From: Andrew Dolgov <noreply@fakecake.org>
Date: Thu, 25 Feb 2021 15:49:30 +0300
Subject: [PATCH] logger: shorter syntax

---
 classes/config.php         |  4 ++++
 classes/handler/public.php |  2 +-
 classes/logger.php         | 24 ++++++++++++++++++------
 classes/logger/stdout.php  |  2 +-
 classes/logger/syslog.php  |  2 +-
 classes/mailer.php         |  2 +-
 classes/pref/system.php    |  2 +-
 classes/prefs.php          | 10 +++++++---
 classes/rpc.php            |  4 ++--
 classes/rssutils.php       |  8 ++++----
 classes/userhelper.php     |  4 ++--
 include/errorhandler.php   |  4 ++--
 update.php                 |  2 +-
 13 files changed, 45 insertions(+), 25 deletions(-)

diff --git a/classes/config.php b/classes/config.php
index 95bf3bf71..2c46e1784 100644
--- a/classes/config.php
+++ b/classes/config.php
@@ -115,6 +115,10 @@ class Config {
 		return self::$instance;
 	}
 
+	private function __clone() {
+		//
+	}
+
 	function __construct() {
 		$ref = new ReflectionClass(get_class($this));
 
diff --git a/classes/handler/public.php b/classes/handler/public.php
index 6ab9d7285..abfe07b8f 100755
--- a/classes/handler/public.php
+++ b/classes/handler/public.php
@@ -369,7 +369,7 @@ class Handler_Public extends Handler {
 					$_SESSION["language"] = get_pref(Prefs::USER_LANGUAGE, $_SESSION["uid"]);
 				}
 
-				$_SESSION["ref_schema_version"] = get_schema_version(true);
+				$_SESSION["ref_schema_version"] = get_schema_version();
 				$_SESSION["bw_limit"] = !!clean($_POST["bw_limit"] ?? false);
 				$_SESSION["safe_mode"] = $safe_mode;
 
diff --git a/classes/logger.php b/classes/logger.php
index c917182c1..c227c014c 100755
--- a/classes/logger.php
+++ b/classes/logger.php
@@ -3,7 +3,7 @@ class Logger {
 	private static $instance;
 	private $adapter;
 
-	public static $errornames = array(
+	const ERROR_NAMES = [
 		1			=> 'E_ERROR',
 		2			=> 'E_WARNING',
 		4			=> 'E_PARSE',
@@ -19,10 +19,14 @@ class Logger {
 		4096		=> 'E_RECOVERABLE_ERROR',
 		8192		=> 'E_DEPRECATED',
 		16384		=> 'E_USER_DEPRECATED',
-		32767		=> 'E_ALL');
+		32767		=> 'E_ALL'];
 
-	function log_error($errno, $errstr, $file, $line, $context) {
-		if ($errno == E_NOTICE) return false;
+	static function log_error(int $errno, string $errstr, string $file, int $line, $context) {
+		return self::get_instance()->_log_error($errno, $errstr, $file, $line, $context);
+	}
+
+	private function _log_error($errno, $errstr, $file, $line, $context) {
+		//if ($errno == E_NOTICE) return false;
 
 		if ($this->adapter)
 			return $this->adapter->log_error($errno, $errstr, $file, $line, $context);
@@ -30,7 +34,11 @@ class Logger {
 			return false;
 	}
 
-	function log($errno, $errstr, $context = "") {
+	static function log(int $errno, string $errstr, $context = "") {
+		return self::get_instance()->_log($errno, $errstr, $context);
+	}
+
+	private function _log($errno, $errstr, $context = "") {
 		if ($this->adapter)
 			return $this->adapter->log_error($errno, $errstr, '', 0, $context);
 		else
@@ -57,11 +65,15 @@ class Logger {
 		}
 	}
 
-	public static function get() : Logger {
+	private static function get_instance() : Logger {
 		if (self::$instance == null)
 			self::$instance = new self();
 
 		return self::$instance;
 	}
 
+	static function get() : Logger {
+		user_error("Please don't use Logger::get(), call Logger::log(...) instead.", E_USER_DEPRECATED);
+		return self::get_instance();
+	}
 }
diff --git a/classes/logger/stdout.php b/classes/logger/stdout.php
index 4dac2e598..645fe8ecf 100644
--- a/classes/logger/stdout.php
+++ b/classes/logger/stdout.php
@@ -21,7 +21,7 @@ class Logger_Stdout {
 			$priority = LOG_INFO;
 		}
 
-		$errname = Logger::$errornames[$errno] . " ($errno)";
+		$errname = Logger::ERROR_NAMES[$errno] . " ($errno)";
 
 		print "[EEE] $priority $errname ($file:$line) $errstr\n";
 
diff --git a/classes/logger/syslog.php b/classes/logger/syslog.php
index f1e151548..2dd3c4dfd 100644
--- a/classes/logger/syslog.php
+++ b/classes/logger/syslog.php
@@ -21,7 +21,7 @@ class Logger_Syslog {
 			$priority = LOG_INFO;
 		}
 
-		$errname = Logger::$errornames[$errno] . " ($errno)";
+		$errname = Logger::ERROR_NAMES[$errno] . " ($errno)";
 
 		syslog($priority, "[tt-rss] $errname ($file:$line) $errstr");
 
diff --git a/classes/mailer.php b/classes/mailer.php
index 93f778210..a4270ba88 100644
--- a/classes/mailer.php
+++ b/classes/mailer.php
@@ -20,7 +20,7 @@ class Mailer {
 		$to_combined = $to_name ? "$to_name <$to_address>" : $to_address;
 
 		if (Config::get(Config::LOG_SENT_MAIL))
-			Logger::get()->log(E_USER_NOTICE, "Sending mail from $from_combined to $to_combined [$subject]: $message");
+			Logger::log(E_USER_NOTICE, "Sending mail from $from_combined to $to_combined [$subject]: $message");
 
 		// HOOK_SEND_MAIL plugin instructions:
 		// 1. return 1 or true if mail is handled
diff --git a/classes/pref/system.php b/classes/pref/system.php
index 67f7133c6..85635e753 100644
--- a/classes/pref/system.php
+++ b/classes/pref/system.php
@@ -129,7 +129,7 @@ class Pref_System extends Handler_Administrative {
 						?>
 						<tr>
 							<td class='errno'>
-								<?= Logger::$errornames[$line["errno"]] . " (" . $line["errno"] . ")" ?>
+								<?= Logger::ERROR_NAMES[$line["errno"]] . " (" . $line["errno"] . ")" ?>
 							</td>
 							<td class='filename'><?= $line["filename"] . ":" . $line["lineno"] ?></td>
 							<td class='errstr'><?= $line["errstr"] . "\n" .  $line["context"] ?></td>
diff --git a/classes/prefs.php b/classes/prefs.php
index 2c17cd353..29e315c22 100644
--- a/classes/prefs.php
+++ b/classes/prefs.php
@@ -167,6 +167,10 @@ class Prefs {
 		};
 	}
 
+	private function __clone() {
+		//
+	}
+
 	static function get_all(int $owner_uid, int $profile_id = null) {
 		return self::get_instance()->_get_all($owner_uid, $profile_id);
 	}
@@ -204,7 +208,7 @@ class Prefs {
 			}
 		}
 
-		if (get_schema_version(true) >= 141) {
+		if (get_schema_version() >= 141) {
 			// fill in any overrides from the database
 			$sth = $this->pdo->prepare("SELECT pref_name, value FROM ttrss_user_prefs2
 									WHERE owner_uid = :uid AND
@@ -228,7 +232,7 @@ class Prefs {
 
 			list ($def_val, $type_hint) = self::_DEFAULTS[$pref_name];
 
-			if (get_schema_version(true) < 141) {
+			if (get_schema_version() < 141) {
 				return Config::cast_to($def_val, $type_hint);
 			}
 
@@ -341,7 +345,7 @@ class Prefs {
 	}
 
 	function migrate(int $owner_uid, int $profile_id = null) {
-		if (get_schema_version(true) < 141)
+		if (get_schema_version() < 141)
 			return;
 
 		if (!$profile_id) $profile_id = null;
diff --git a/classes/rpc.php b/classes/rpc.php
index 3abdeb768..a4ee77c11 100755
--- a/classes/rpc.php
+++ b/classes/rpc.php
@@ -140,7 +140,7 @@ class RPC extends Handler_Protected {
 
 		$error = Errors::E_SUCCESS;
 
-		if (get_schema_version(true) != SCHEMA_VERSION) {
+		if (get_schema_version() != SCHEMA_VERSION) {
 			$error = Errors::E_SCHEMA_MISMATCH;
 		}
 
@@ -343,7 +343,7 @@ class RPC extends Handler_Protected {
 		$context = clean($_REQUEST['context']);
 
 		if ($msg) {
-			Logger::get()->log_error(E_USER_WARNING,
+			Logger::log_error(E_USER_WARNING,
 				$msg, 'client-js:' . $file, $line, $context);
 
 			echo json_encode(array("message" => "HOST_ERROR_LOGGED"));
diff --git a/classes/rssutils.php b/classes/rssutils.php
index 0a4040ef3..b6aecb8c9 100755
--- a/classes/rssutils.php
+++ b/classes/rssutils.php
@@ -216,7 +216,7 @@ class RSSUtils {
 
 						Debug::log("!! Last error: $error_message");
 
-						Logger::get()->log(E_USER_NOTICE,
+						Logger::log(E_USER_NOTICE,
 							sprintf("Update process for feed %d (%s, owner UID: %d) failed with exit code: %d (%s).",
 								$tline["id"], clean($tline["title"]), $tline["owner_uid"], $exit_code, clean($error_message)));
 
@@ -233,7 +233,7 @@ class RSSUtils {
 						if (!self::update_rss_feed($tline["id"], true)) {
 							global $fetch_last_error;
 
-							Logger::get()->log(E_USER_NOTICE,
+							Logger::log(E_USER_NOTICE,
 								sprintf("Update request for feed %d (%s, owner UID: %d) failed: %s.",
 									$tline["id"], clean($tline["title"]), $tline["owner_uid"], clean($fetch_last_error)));
 						}
@@ -241,7 +241,7 @@ class RSSUtils {
 						Debug::log(sprintf("<= %.4f (sec) (not using a separate process)", microtime(true) - $fstarted));
 
 					} catch (PDOException $e) {
-						Logger::get()->log_error(E_USER_WARNING, $e->getMessage(), $e->getFile(), $e->getLine(), $e->getTraceAsString());
+						Logger::log_error(E_USER_WARNING, $e->getMessage(), $e->getFile(), $e->getLine(), $e->getTraceAsString());
 
 						try {
 							$pdo->rollback();
@@ -1619,7 +1619,7 @@ class RSSUtils {
 			$sth->execute();
 
 			while ($row = $sth->fetch()) {
-				Logger::get()->log(E_USER_NOTICE,
+				Logger::log(E_USER_NOTICE,
 					sprintf("Auto disabling feed %d (%s, UID: %d) because it failed to update for %d days.",
 						$row["id"], clean($row["title"]), $row["owner_uid"], Config::get(Config::DAEMON_UNSUCCESSFUL_DAYS_LIMIT)));
 
diff --git a/classes/userhelper.php b/classes/userhelper.php
index 0698f6beb..4edcaf368 100644
--- a/classes/userhelper.php
+++ b/classes/userhelper.php
@@ -47,7 +47,7 @@ class UserHelper {
 			}
 
 			if (!$user_id)
-				Logger::get()->log(E_USER_WARNING, "Failed login attempt for $login (service: $service) from " . UserHelper::get_user_ip());
+				Logger::log(E_USER_WARNING, "Failed login attempt for $login (service: $service) from " . UserHelper::get_user_ip());
 
 			return false;
 
@@ -102,7 +102,7 @@ class UserHelper {
 			if (empty($_SESSION["uid"])) {
 
 				if (Config::get(Config::AUTH_AUTO_LOGIN) && self::authenticate(null, null)) {
-					$_SESSION["ref_schema_version"] = get_schema_version(true);
+					$_SESSION["ref_schema_version"] = get_schema_version();
 				} else {
 					 self::authenticate(null, null, true);
 				}
diff --git a/include/errorhandler.php b/include/errorhandler.php
index 68e2285c1..a59d7a616 100644
--- a/include/errorhandler.php
+++ b/include/errorhandler.php
@@ -54,7 +54,7 @@ function ttrss_error_handler($errno, $errstr, $file, $line) {
 	$errstr = truncate_middle($errstr, 16384, " (...) ");
 
 	if (class_exists("Logger"))
-		return Logger::get()->log_error($errno, $errstr, $file, $line, $context);
+		return Logger::log_error($errno, $errstr, $file, $line, $context);
 }
 
 function ttrss_fatal_handler() {
@@ -77,7 +77,7 @@ function ttrss_fatal_handler() {
 		if ($last_query) $errstr .= " [Last query: $last_query]";
 
 		if (class_exists("Logger"))
-			return Logger::get()->log_error($errno, $errstr, $file, $line, $context);
+			return Logger::log_error($errno, $errstr, $file, $line, $context);
 	}
 
 	return false;
diff --git a/update.php b/update.php
index 8d8566db7..bcb6d6d12 100755
--- a/update.php
+++ b/update.php
@@ -242,7 +242,7 @@
 			Debug::log(sprintf("Exception while updating feed %d: %s (%s:%d)",
 				$options["update-feed"], $e->getMessage(), $e->getFile(), $e->getLine()));
 
-			Logger::get()->log_error(E_USER_WARNING, $e->getMessage(), $e->getFile(), $e->getLine(), $e->getTraceAsString());
+			Logger::log_error(E_USER_WARNING, $e->getMessage(), $e->getFile(), $e->getLine(), $e->getTraceAsString());
 
 			exit(110);
 		}
-- 
GitLab