diff --git a/classes/db/migrations.php b/classes/db/migrations.php
index cb74c247af1f2916f143cba75e12afe56631efab..6e20ddf7f460bd38c5d6e038b528bb3d7a5e0ab3 100644
--- a/classes/db/migrations.php
+++ b/classes/db/migrations.php
@@ -1,16 +1,33 @@
 <?php
 class Db_Migrations {
 
-	private string $base_filename = "schema.sql";
-	private string $base_path;
-	private string $migrations_path;
-	private string $migrations_table;
-	private bool $base_is_latest;
-	private \PDO $pdo;
-
-	private int $cached_version;
-	private int $cached_max_version;
-	private int $max_version_override;
+	// TODO: class properties can be switched to PHP typing if/when the minimum PHP_VERSION is raised to 7.4.0+
+	/** @var string */
+	private $base_filename = "schema.sql";
+
+	/** @var string */
+	private $base_path;
+
+	/** @var string */
+	private $migrations_path;
+
+	/** @var string */
+	private $migrations_table;
+
+	/** @var bool */
+	private $base_is_latest;
+
+	/** @var PDO */
+	private $pdo;
+
+	/** @var int */
+	private $cached_version;
+
+	/** @var int */
+	private $cached_max_version;
+
+	/** @var int */
+	private $max_version_override;
 
 	function __construct() {
 		$this->pdo = Db::pdo();
diff --git a/classes/debug.php b/classes/debug.php
index 6e8c46ed267c6fb9c4de931ae4896a85fb3fc02e..e20126b86a6d564c02f3f4f28b6eaf6006ed729b 100644
--- a/classes/debug.php
+++ b/classes/debug.php
@@ -1,9 +1,9 @@
 <?php
 class Debug {
 	const LOG_DISABLED = -1;
-    const LOG_NORMAL = 0;
-    const LOG_VERBOSE = 1;
-    const LOG_EXTENDED = 2;
+	const LOG_NORMAL = 0;
+	const LOG_VERBOSE = 1;
+	const LOG_EXTENDED = 2;
 
 	const ALL_LOG_LEVELS = [
 		Debug::LOG_DISABLED,
@@ -12,26 +12,44 @@ class Debug {
 		Debug::LOG_EXTENDED,
 	];
 
-	/** @deprecated */
-	public static int $LOG_DISABLED = self::LOG_DISABLED;
+	// TODO: class properties can be switched to PHP typing if/when the minimum PHP_VERSION is raised to 7.4.0+
+	/**
+	 * @deprecated
+	 * @var int
+	*/
+	public static $LOG_DISABLED = self::LOG_DISABLED;
+
+	/**
+	 * @deprecated
+	 * @var int
+	*/
+	public static $LOG_NORMAL = self::LOG_NORMAL;
 
-	/** @deprecated */
-    public static int $LOG_NORMAL = self::LOG_NORMAL;
+	/**
+	 * @deprecated
+	 * @var int
+	*/
+	public static $LOG_VERBOSE = self::LOG_VERBOSE;
+
+	/**
+	 * @deprecated
+	 * @var int
+	*/
+	public static $LOG_EXTENDED = self::LOG_EXTENDED;
 
-	/** @deprecated */
-    public static int $LOG_VERBOSE = self::LOG_VERBOSE;
+	/** @var bool */
+	private static $enabled = false;
 
-	/** @deprecated */
-    public static int $LOG_EXTENDED = self::LOG_EXTENDED;
+	/** @var bool */
+	private static $quiet = false;
 
-    private static bool $enabled = false;
-    private static bool $quiet = false;
-    private static ?string $logfile = null;
+	/** @var string|null */
+	private static $logfile = null;
 
 	/**
 	 * @var int Debug::LOG_*
 	 */
-    private static int $loglevel = self::LOG_NORMAL;
+    private static $loglevel = self::LOG_NORMAL;
 
 	public static function set_logfile(string $logfile): void {
         self::$logfile = $logfile;
diff --git a/classes/diskcache.php b/classes/diskcache.php
index 9fa043aee7a0cff5c385e580f4d82a59bae7e04e..ed334b2d2e4475f619dd91f4feb078ea7cf161b9 100644
--- a/classes/diskcache.php
+++ b/classes/diskcache.php
@@ -1,6 +1,8 @@
 <?php
 class DiskCache {
-	private string $dir;
+	// TODO: class properties can be switched to PHP typing if/when the minimum PHP_VERSION is raised to 7.4.0+
+	/** @var string */
+	private $dir;
 
 	/**
 	 * https://stackoverflow.com/a/53662733
diff --git a/classes/mailer.php b/classes/mailer.php
index 4eb13aec8dada376e302812118cda59c793085c2..a0f232800a4ef27e985d568579fa12eb405a6d62 100644
--- a/classes/mailer.php
+++ b/classes/mailer.php
@@ -1,6 +1,8 @@
 <?php
 class Mailer {
-	private string $last_error = "";
+	// TODO: class properties can be switched to PHP typing if/when the minimum PHP_VERSION is raised to 7.4.0+
+	/** @var string */
+	private $last_error = "";
 
 	/**
 	 * @param array<string, mixed> $params
diff --git a/classes/pluginhost.php b/classes/pluginhost.php
index 36e050377ee8800f39df97d6518fd7bd23242e1e..173a75611ba4d2daae8eb424eee50eb26058b5f8 100755
--- a/classes/pluginhost.php
+++ b/classes/pluginhost.php
@@ -1,38 +1,49 @@
 <?php
 class PluginHost {
-	private ?\Pdo $pdo = null;
+	// TODO: class properties can be switched to PHP typing if/when the minimum PHP_VERSION is raised to 7.4.0+
+	/** @var PDO|null */
+	private $pdo = null;
 
-	/* separate handle for plugin data so transaction while saving wouldn't clash with possible main
-		tt-rss code transactions; only initialized when first needed */
-	private ?\Pdo $pdo_data = null;
+	/**
+	 * separate handle for plugin data so transaction while saving wouldn't clash with possible main
+	 * tt-rss code transactions; only initialized when first needed
+	 *
+	 * @var PDO|null
+	 */
+	private $pdo_data = null;
 
 	/** @var array<string, array<int, array<int, Plugin>>> hook types -> priority levels -> Plugins */
-	private array $hooks = [];
+	private $hooks = [];
 
 	/** @var array<string, Plugin> */
-	private array $plugins = [];
+	private $plugins = [];
 
 	/** @var array<string, array<string, Plugin>> handler type -> method type -> Plugin */
-	private array $handlers = [];
+	private $handlers = [];
 
 	/** @var array<string, array{'description': string, 'suffix': string, 'arghelp': string, 'class': Plugin}> command type -> details array */
-	private array $commands = [];
+	private $commands = [];
 
 	/** @var array<string, array<string, mixed>> plugin name -> (potential profile array) -> key -> value  */
-	private array $storage = [];
+	private $storage = [];
 
 	/** @var array<int, array<int, array{'id': int, 'title': string, 'sender': Plugin, 'icon': string}>> */
-	private array $feeds = [];
+	private $feeds = [];
 
 	/** @var array<string, Plugin> API method name, Plugin sender */
-	private array $api_methods = [];
+	private $api_methods = [];
 
 	/** @var array<string, array<int, array{'action': string, 'description': string, 'sender': Plugin}>> */
-	private array $plugin_actions = [];
+	private $plugin_actions = [];
+
+	/** @var int|null */
+	private $owner_uid = null;
+
+	/** @var bool */
+	private $data_loaded = false;
 
-	private ?int $owner_uid = null;
-	private bool $data_loaded = false;
-	private static ?PluginHost $instance = null;
+	/** @var PluginHost|null */
+	private static $instance = null;
 
 	const API_VERSION = 2;
 	const PUBLIC_METHOD_DELIMITER = "--";
diff --git a/classes/urlhelper.php b/classes/urlhelper.php
index 0592bf28ca849fc18a518ca67de18274eab919a3..351d66b8d4aa8cd1eb631cf91e39c6945084d943 100644
--- a/classes/urlhelper.php
+++ b/classes/urlhelper.php
@@ -6,14 +6,30 @@ class UrlHelper {
 		"tel"
 	];
 
-	static string $fetch_last_error;
-	static int $fetch_last_error_code;
-	static string $fetch_last_error_content;
-	static string $fetch_last_content_type;
-	static string $fetch_last_modified;
-	static string $fetch_effective_url;
-	static string $fetch_effective_ip_addr;
-	static bool $fetch_curl_used;
+	// TODO: class properties can be switched to PHP typing if/when the minimum PHP_VERSION is raised to 7.4.0+
+	/** @var string */
+	static $fetch_last_error;
+
+	/** @var int */
+	static $fetch_last_error_code;
+
+	/** @var string */
+	static $fetch_last_error_content;
+
+	/** @var string */
+	static $fetch_last_content_type;
+
+	/** @var string */
+	static $fetch_last_modified;
+
+	/** @var string */
+	static $fetch_effective_url;
+
+	/** @var string */
+	static $fetch_effective_ip_addr;
+
+	/** @var bool */
+	static $fetch_curl_used;
 
 	/**
 	 * @param array<string, string|int> $parts