From 314077a457f04cc2f0472e036af029e2676fbf02 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Mon, 15 Jan 2024 10:36:30 +0100 Subject: PHPStan prepare exceptions (#6037) Take advantage of https://phpstan.org/blog/bring-your-exceptions-under-control Minimum changes to pass `tooWideThrowType` and `implicitThrows`. Revert some mistakes from: https://github.com/FreshRSS/FreshRSS/pull/5504 Preparation needed before new PRs of the same type: https://github.com/FreshRSS/FreshRSS/pull/5962 Fix several wrong PHPDocs and catches: > Method ... has ...Exception in PHPDoc @throws tag but it's not thrown. > Dead catch - ...Exception is never thrown in the try block. --- app/Models/Feed.php | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'app/Models/Feed.php') diff --git a/app/Models/Feed.php b/app/Models/Feed.php index 40e78bfeb..1de8258e8 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -65,6 +65,9 @@ class FreshRSS_Feed extends Minz_Model { private string $hubUrl = ''; private string $selfUrl = ''; + /** + * @throws FreshRSS_BadUrl_Exception + */ public function __construct(string $url, bool $validate = true) { if ($validate) { $this->_url($url); @@ -248,6 +251,9 @@ class FreshRSS_Feed extends Minz_Model { $this->id = $value; } + /** + * @throws FreshRSS_BadUrl_Exception + */ public function _url(string $value, bool $validate = true): void { $this->hash = ''; $url = $value; @@ -323,9 +329,16 @@ class FreshRSS_Feed extends Minz_Model { $this->nbEntries = $value; } + /** + * @throws Minz_FileNotExistException + * @throws FreshRSS_Feed_Exception + */ public function load(bool $loadDetails = false, bool $noCache = false): ?SimplePie { if ($this->url != '') { - // @phpstan-ignore-next-line + /** + * @phpstan-ignore-next-line + * @throws Minz_FileNotExistException + */ if (CACHE_PATH == '') { throw new Minz_FileNotExistException( 'CACHE_PATH', @@ -615,9 +628,6 @@ class FreshRSS_Feed extends Minz_Model { ]; } - /** - * @throws FreshRSS_Context_Exception - */ public function loadJson(): ?SimplePie { if ($this->url == '') { return null; @@ -654,9 +664,6 @@ class FreshRSS_Feed extends Minz_Model { return $this->simplePieFromContent($feedContent); } - /** - * @throws FreshRSS_Context_Exception - */ public function loadHtmlXpath(): ?SimplePie { if ($this->url == '') { return null; @@ -799,7 +806,6 @@ class FreshRSS_Feed extends Minz_Model { /** * @return int|null The max number of unread articles to keep, or null if disabled. - * @throws JsonException */ public function keepMaxUnread() { $keepMaxUnread = $this->attributeInt('keep_max_n_unread'); @@ -881,7 +887,10 @@ class FreshRSS_Feed extends Minz_Model { return false; } - /** @param array $attributes */ + /** + * @param array $attributes + * @throws FreshRSS_Context_Exception + */ public static function cacheFilename(string $url, array $attributes, int $kind = FreshRSS_Feed::KIND_RSS): string { $simplePie = customSimplePie($attributes); $filename = $simplePie->get_cache_filename($url); -- cgit v1.2.3