From d3a81f598b24d6ae4f98415fac9509df6749eaf8 Mon Sep 17 00:00:00 2001 From: wn_ <invalid@email.com> Date: Fri, 12 Nov 2021 21:17:31 +0000 Subject: [PATCH] Switch class properties from PHP typing to PHPDoc for compatibility with PHP < 7.4.0 --- classes/db/migrations.php | 37 ++++++++++++++++++++++-------- classes/debug.php | 48 +++++++++++++++++++++++++++------------ classes/diskcache.php | 4 +++- classes/mailer.php | 4 +++- classes/pluginhost.php | 41 +++++++++++++++++++++------------ classes/urlhelper.php | 32 +++++++++++++++++++------- 6 files changed, 116 insertions(+), 50 deletions(-) diff --git a/classes/db/migrations.php b/classes/db/migrations.php index cb74c247a..6e20ddf7f 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 6e8c46ed2..e20126b86 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 9fa043aee..ed334b2d2 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 4eb13aec8..a0f232800 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 36e050377..173a75611 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 0592bf28c..351d66b8d 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 -- GitLab