From a1bd6cea1bbb3041ee8e2ba44a80cd2ea0b8209f Mon Sep 17 00:00:00 2001 From: wn_ Date: Tue, 10 Dec 2024 20:31:16 +0000 Subject: Use native typing in more places and clean up 'FeedEnclosure' a bit. --- classes/API.php | 3 +-- classes/Config.php | 10 +++----- classes/Db.php | 9 +++---- classes/DiskCache.php | 5 ++-- classes/FeedEnclosure.php | 26 ++++++------------- classes/FeedItem_Atom.php | 10 ++++---- classes/FeedItem_Common.php | 61 +++++++++++++++++++-------------------------- classes/FeedItem_RSS.php | 16 ++++++------ classes/FeedParser.php | 22 ++++++---------- classes/Logger.php | 6 ++--- classes/Pref_Filters.php | 2 +- classes/Prefs.php | 8 +++--- 12 files changed, 69 insertions(+), 109 deletions(-) (limited to 'classes') diff --git a/classes/API.php b/classes/API.php index 31a3bec97..241663b3d 100644 --- a/classes/API.php +++ b/classes/API.php @@ -14,8 +14,7 @@ class API extends Handler { const E_OPERATION_FAILED = "E_OPERATION_FAILED"; const E_NOT_FOUND = "E_NOT_FOUND"; - /** @var int|null */ - private $seq; + private ?int $seq = null; /** * @param array $reply diff --git a/classes/Config.php b/classes/Config.php index 9d671215a..356f81391 100644 --- a/classes/Config.php +++ b/classes/Config.php @@ -252,17 +252,15 @@ class Config { Config::HTTP_429_THROTTLE_INTERVAL => [ 3600, Config::T_INT ] ]; - /** @var Config|null */ - private static $instance; + private static ?Config $instance = null; /** @var array> */ - private $params = []; + private array $params = []; /** @var array */ - private $version = []; + private array $version = []; - /** @var Db_Migrations|null $migrations */ - private $migrations; + private Db_Migrations $migrations; public static function get_instance() : Config { if (self::$instance == null) diff --git a/classes/Db.php b/classes/Db.php index 4331b662e..2d8511258 100644 --- a/classes/Db.php +++ b/classes/Db.php @@ -1,11 +1,8 @@ $instances */ - private static $instances = []; + private static array $instances = []; /** * https://stackoverflow.com/a/53662733 diff --git a/classes/FeedEnclosure.php b/classes/FeedEnclosure.php index b5f5cc411..6ef9bca5e 100644 --- a/classes/FeedEnclosure.php +++ b/classes/FeedEnclosure.php @@ -1,21 +1,11 @@ xpath->evaluate("string(ancestor-or-self::*[@xml:base][1]/@xml:base)", $link); if ($link->getAttribute("rel") == "enclosure") { - $enc = new FeedEnclosure(); - - $enc->type = clean($link->getAttribute("type")); - $enc->length = clean($link->getAttribute("length")); - $enc->link = clean($link->getAttribute("href")); + $enc = new FeedEnclosure( + type: clean($link->getAttribute('type')), + length: clean($link->getAttribute('length')), + link: clean($link->getAttribute('href')), + ); if (!empty($base)) { $enc->link = UrlHelper::rewrite_relative($base, $enc->link); diff --git a/classes/FeedItem_Common.php b/classes/FeedItem_Common.php index 1471dc3e3..5b30ab20c 100644 --- a/classes/FeedItem_Common.php +++ b/classes/FeedItem_Common.php @@ -1,19 +1,10 @@ elem = $elem; - $this->xpath = $xpath; - $this->doc = $doc; - + function __construct( + protected readonly DOMElement $elem, + protected readonly DOMDocument $doc, + protected readonly DOMXPath $xpath, + ) { try { $source = $elem->getElementsByTagName("source")->item(0); @@ -97,13 +88,13 @@ abstract class FeedItem_Common extends FeedItem { $enclosures = $this->xpath->query("media:content", $this->elem); foreach ($enclosures as $enclosure) { - $enc = new FeedEnclosure(); - - $enc->type = clean($enclosure->getAttribute("type")); - $enc->link = clean($enclosure->getAttribute("url")); - $enc->length = clean($enclosure->getAttribute("length")); - $enc->height = clean($enclosure->getAttribute("height")); - $enc->width = clean($enclosure->getAttribute("width")); + $enc = new FeedEnclosure( + type: clean($enclosure->getAttribute('type')), + link: clean($enclosure->getAttribute('url')), + length: clean($enclosure->getAttribute('length')), + height: clean($enclosure->getAttribute('height')), + width: clean($enclosure->getAttribute('width')), + ); $medium = clean($enclosure->getAttribute("medium")); if (!$enc->type && $medium) { @@ -119,17 +110,17 @@ abstract class FeedItem_Common extends FeedItem { $enclosures = $this->xpath->query("media:group", $this->elem); foreach ($enclosures as $enclosure) { - $enc = new FeedEnclosure(); - /** @var DOMElement|null */ $content = $this->xpath->query("media:content", $enclosure)->item(0); if ($content) { - $enc->type = clean($content->getAttribute("type")); - $enc->link = clean($content->getAttribute("url")); - $enc->length = clean($content->getAttribute("length")); - $enc->height = clean($content->getAttribute("height")); - $enc->width = clean($content->getAttribute("width")); + $enc = new FeedEnclosure( + type: clean($content->getAttribute('type')), + link: clean($content->getAttribute('url')), + length: clean($content->getAttribute('length')), + height: clean($content->getAttribute('height')), + width: clean($content->getAttribute('width')), + ); $medium = clean($content->getAttribute("medium")); if (!$enc->type && $medium) { @@ -151,14 +142,12 @@ abstract class FeedItem_Common extends FeedItem { $enclosures = $this->xpath->query("media:thumbnail", $this->elem); foreach ($enclosures as $enclosure) { - $enc = new FeedEnclosure(); - - $enc->type = "image/generic"; - $enc->link = clean($enclosure->getAttribute("url")); - $enc->height = clean($enclosure->getAttribute("height")); - $enc->width = clean($enclosure->getAttribute("width")); - - array_push($encs, $enc); + $encs[] = new FeedEnclosure( + type: 'image/generic', + link: clean($enclosure->getAttribute('url')), + height: clean($enclosure->getAttribute('height')), + width: clean($enclosure->getAttribute('width')), + ); } return $encs; diff --git a/classes/FeedItem_RSS.php b/classes/FeedItem_RSS.php index ab1764577..2970e43bd 100644 --- a/classes/FeedItem_RSS.php +++ b/classes/FeedItem_RSS.php @@ -141,15 +141,13 @@ class FeedItem_RSS extends FeedItem_Common { $encs = array(); foreach ($enclosures as $enclosure) { - $enc = new FeedEnclosure(); - - $enc->type = clean($enclosure->getAttribute("type")); - $enc->link = clean($enclosure->getAttribute("url")); - $enc->length = clean($enclosure->getAttribute("length")); - $enc->height = clean($enclosure->getAttribute("height")); - $enc->width = clean($enclosure->getAttribute("width")); - - array_push($encs, $enc); + $encs[] = new FeedEnclosure( + type: clean($enclosure->getAttribute('type')), + link: clean($enclosure->getAttribute('url')), + length: clean($enclosure->getAttribute('length')), + height: clean($enclosure->getAttribute('height')), + width: clean($enclosure->getAttribute('width')), + ); } array_push($encs, ...parent::get_enclosures()); diff --git a/classes/FeedParser.php b/classes/FeedParser.php index c288ffc91..fd26226ae 100644 --- a/classes/FeedParser.php +++ b/classes/FeedParser.php @@ -1,29 +1,23 @@ */ - private $libxml_errors = []; + private array $libxml_errors = []; /** @var array */ - private $items = []; + private array $items = []; - /** @var string|null */ - private $link; + private ?string $link = null; - /** @var string|null */ - private $title; + private ?string $title = null; /** @var FeedParser::FEED_*|null */ - private $type; + private ?int $type = null; - /** @var DOMXPath|null */ - private $xpath; + private ?DOMXPath $xpath = null; const FEED_UNKNOWN = -1; const FEED_RDF = 0; diff --git a/classes/Logger.php b/classes/Logger.php index 049b63d5e..05a117a0b 100644 --- a/classes/Logger.php +++ b/classes/Logger.php @@ -1,10 +1,8 @@ > $action_descriptions */ - private $action_descriptions = []; + private array $action_descriptions = []; function before(string $method) : bool { diff --git a/classes/Prefs.php b/classes/Prefs.php index f7e6e39c0..08f402d40 100644 --- a/classes/Prefs.php +++ b/classes/Prefs.php @@ -144,14 +144,12 @@ class Prefs { Prefs::_PREFS_MIGRATED ]; - /** @var Prefs|null */ - private static $instance; + private static ?Prefs $instance = null; /** @var array */ - private $cache = []; + private array $cache = []; - /** @var PDO */ - private $pdo; + private ?PDO $pdo = null; public static function get_instance() : Prefs { if (self::$instance == null) -- cgit v1.2.3-54-g00ecf