fix several warnings reported by phpstan

This commit is contained in:
Andrew Dolgov 2021-02-06 17:19:07 +03:00
parent ce2335deaf
commit b6e1a5c91a
7 changed files with 55 additions and 51 deletions

View File

@ -115,10 +115,9 @@ class Feeds extends Handler_Protected {
$this->mark_timestamp("init");
$reply = array();
$rgba_cache = array();
$topmost_article_ids = array();
$reply = [];
$rgba_cache = [];
$topmost_article_ids = [];
if (!$offset) $offset = 0;
if ($method == "undefined") $method = "";
@ -154,6 +153,8 @@ class Feeds extends Handler_Protected {
$disable_cache = true;
}
$qfh_ret = [];
if (!$cat_view && is_numeric($feed) && $feed < PLUGIN_FEED_BASE_INDEX && $feed > LABEL_BASE_INDEX) {
$handler = PluginHost::getInstance()->get_feed_handler(
PluginHost::feed_to_pfeed_id($feed));
@ -220,19 +221,19 @@ class Feeds extends Handler_Protected {
$feed, $cat_view, $search,
$last_error, $last_updated);
$reply['content'] = [];
if ($offset == 0) {
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_HEADLINES_BEFORE) as $p) {
$reply['content'] .= $p->hook_headlines_before($feed, $cat_view, $qfh_ret);
}
}
$reply['content'] = [];
$this->mark_timestamp("object header");
$headlines_count = 0;
if (is_object($result)) {
if ($result instanceof PDOStatement) {
while ($line = $result->fetch(PDO::FETCH_ASSOC)) {
$this->mark_timestamp("article start: " . $line["id"] . " " . $line["title"]);
@ -363,7 +364,7 @@ class Feeds extends Handler_Protected {
else
$tags = false;
$line["tags_str"] = Article::format_tags_string($tags, $id);
$line["tags_str"] = Article::format_tags_string($tags);
$this->mark_timestamp(" tags");
@ -410,7 +411,7 @@ class Feeds extends Handler_Protected {
if (!$headlines_count) {
if (is_object($result)) {
if ($result instanceof PDOStatement) {
if ($query_error_override) {
$message = $query_error_override;
@ -1087,7 +1088,7 @@ class Feeds extends Handler_Protected {
} else if ($n_feed >= 0) {
if ($n_feed != 0) {
$match_part = "feed_id = " . (int)$n_feed;
$match_part = sprintf("feed_id = %d", $n_feed);
} else {
$match_part = "feed_id IS NULL";
}

View File

@ -244,7 +244,7 @@ class RPC extends Handler_Protected {
function setpanelmode() {
$wide = (int) clean($_REQUEST["wide"]);
setcookie("ttrss_widescreen", $wide,
setcookie("ttrss_widescreen", (string)$wide,
time() + COOKIE_LIFETIME_LONG);
print json_encode(array("wide" => $wide));
@ -462,7 +462,7 @@ class RPC extends Handler_Protected {
$params["default_view_order_by"] = get_pref("_DEFAULT_VIEW_ORDER_BY");
$params["bw_limit"] = (int) $_SESSION["bw_limit"];
$params["is_default_pw"] = Pref_Prefs::isdefaultpassword();
$params["label_base_index"] = (int) LABEL_BASE_INDEX;
$params["label_base_index"] = LABEL_BASE_INDEX;
$theme = get_pref( "USER_CSS_THEME", false, false);
$params["theme"] = theme_exists($theme) ? $theme : "";
@ -490,7 +490,7 @@ class RPC extends Handler_Protected {
$params["widescreen"] = (int) ($_COOKIE["ttrss_widescreen"] ?? 0);
$params['simple_update'] = defined('SIMPLE_UPDATE_MODE') && SIMPLE_UPDATE_MODE;
$params['simple_update'] = SIMPLE_UPDATE_MODE;
$params["icon_indicator_white"] = $this->image_to_base64("images/indicator_white.gif");
@ -503,7 +503,7 @@ class RPC extends Handler_Protected {
if (file_exists($filename)) {
$ext = pathinfo($filename, PATHINFO_EXTENSION);
return "data:image/$ext;base64," . base64_encode(file_get_contents($filename));
return "data:image/$ext;base64," . base64_encode((string)file_get_contents($filename));
} else {
return "";
}
@ -719,7 +719,7 @@ class RPC extends Handler_Protected {
$prefixes = array();
foreach (array_keys($hotkeys) as $hotkey) {
$pair = explode(" ", $hotkey, 2);
$pair = explode(" ", (string)$hotkey, 2);
if (count($pair) > 1 && !in_array($pair[0], $prefixes)) {
array_push($prefixes, $pair[0]);

View File

@ -1415,7 +1415,7 @@ class RSSUtils {
* @param string query
* @return array params
*/
static function convertUrlQuery($query) {
/* static function convertUrlQuery($query) {
$queryParts = explode('&', $query);
$params = array();
@ -1426,7 +1426,7 @@ class RSSUtils {
}
return $params;
}
} */
static function get_article_filters($filters, $title, $content, $link, $author, $tags, &$matched_rules = false, &$matched_filters = false) {
$matches = array();
@ -1435,14 +1435,16 @@ class RSSUtils {
$match_any_rule = $filter["match_any_rule"];
$inverse = $filter["inverse"];
$filter_match = false;
$last_processed_rule = false;
foreach ($filter["rules"] as $rule) {
$match = false;
$reg_exp = str_replace('/', '\/', $rule["reg_exp"]);
$reg_exp = str_replace('/', '\/', (string)$rule["reg_exp"]);
$reg_exp = str_replace("\n", "", $reg_exp); // reg_exp may be formatted with CRs now because of textarea, we need to strip those
$rule_inverse = $rule["inverse"];
$last_processed_rule = $rule;
if (!$reg_exp)
if (empty($reg_exp))
continue;
switch ($rule["type"]) {
@ -1451,13 +1453,13 @@ class RSSUtils {
break;
case "content":
// we don't need to deal with multiline regexps
$content = preg_replace("/[\r\n\t]/", "", $content);
$content = (string)preg_replace("/[\r\n\t]/", "", $content);
$match = @preg_match("/$reg_exp/iu", $content);
break;
case "both":
// we don't need to deal with multiline regexps
$content = preg_replace("/[\r\n\t]/", "", $content);
$content = (string)preg_replace("/[\r\n\t]/", "", $content);
$match = (@preg_match("/$reg_exp/iu", $title) || @preg_match("/$reg_exp/iu", $content));
break;
@ -1495,7 +1497,7 @@ class RSSUtils {
if ($inverse) $filter_match = !$filter_match;
if ($filter_match) {
if (is_array($matched_rules)) array_push($matched_rules, $rule);
if (is_array($matched_rules)) array_push($matched_rules, $last_processed_rule);
if (is_array($matched_filters)) array_push($matched_filters, $filter);
foreach ($filter["actions"] AS $action) {
@ -1581,11 +1583,11 @@ class RSSUtils {
$pdo->beginTransaction();
$days = (int) DAEMON_UNSUCCESSFUL_DAYS_LIMIT;
$days = DAEMON_UNSUCCESSFUL_DAYS_LIMIT;
if (DB_TYPE == "pgsql") {
$interval_query = "last_successful_update < NOW() - INTERVAL '$days days' AND last_updated > NOW() - INTERVAL '1 days'";
} else if (DB_TYPE == "mysql") {
} else /* if (DB_TYPE == "mysql") */ {
$interval_query = "last_successful_update < DATE_SUB(NOW(), INTERVAL $days DAY) AND last_updated > DATE_SUB(NOW(), INTERVAL 1 DAY)";
}

View File

@ -188,16 +188,16 @@ class Sanitizer {
$text = $child->textContent;
while (($pos = mb_stripos($text, $word)) !== false) {
$fragment->appendChild(new DomText(mb_substr($text, 0, $pos)));
$word = mb_substr($text, $pos, mb_strlen($word));
$fragment->appendChild(new DOMText(mb_substr($text, 0, (int)$pos)));
$word = mb_substr($text, (int)$pos, mb_strlen($word));
$highlight = $doc->createElement('span');
$highlight->appendChild(new DomText($word));
$highlight->appendChild(new DOMText($word));
$highlight->setAttribute('class', 'highlight');
$fragment->appendChild($highlight);
$text = mb_substr($text, $pos + mb_strlen($word));
}
if (!empty($text)) $fragment->appendChild(new DomText($text));
if (!empty($text)) $fragment->appendChild(new DOMText($text));
$child->parentNode->replaceChild($fragment, $child);
}

View File

@ -82,7 +82,8 @@ class TimeHelper {
}
$dt = new DateTime(date('Y-m-d H:i:s', $timestamp), $source_tz);
return $dt->format('U') + $dest_tz->getOffset($dt);
return (int)$dt->format('U') + $dest_tz->getOffset($dt);
}
}

View File

@ -237,6 +237,8 @@ class UrlHelper {
$ch = curl_init($url);
if (!$ch) return false;
$curl_http_headers = [];
if ($last_modified && !$post_query)
@ -361,7 +363,7 @@ class UrlHelper {
$is_gzipped = RSSUtils::is_gzipped($contents);
if ($is_gzipped) {
if ($is_gzipped && is_string($contents)) {
$tmp = @gzdecode($contents);
if ($tmp) $contents = $tmp;
@ -433,28 +435,26 @@ class UrlHelper {
$data = @file_get_contents($url, false, $context);
if (isset($http_response_header) && is_array($http_response_header)) {
foreach ($http_response_header as $header) {
if (strstr($header, ": ") !== false) {
list ($key, $value) = explode(": ", $header);
foreach ($http_response_header as $header) {
if (strstr($header, ": ") !== false) {
list ($key, $value) = explode(": ", $header);
$key = strtolower($key);
$key = strtolower($key);
if ($key == 'content-type') {
$fetch_last_content_type = $value;
// don't abort here b/c there might be more than one
// e.g. if we were being redirected -- last one is the right one
} else if ($key == 'last-modified') {
$fetch_last_modified = $value;
} else if ($key == 'location') {
$fetch_effective_url = $value;
}
if ($key == 'content-type') {
$fetch_last_content_type = $value;
// don't abort here b/c there might be more than one
// e.g. if we were being redirected -- last one is the right one
} else if ($key == 'last-modified') {
$fetch_last_modified = $value;
} else if ($key == 'location') {
$fetch_effective_url = $value;
}
}
if (substr(strtolower($header), 0, 7) == 'http/1.') {
$fetch_last_error_code = (int) substr($header, 9, 3);
$fetch_last_error = $header;
}
if (substr(strtolower($header), 0, 7) == 'http/1.') {
$fetch_last_error_code = (int) substr($header, 9, 3);
$fetch_last_error = $header;
}
}
@ -472,7 +472,7 @@ class UrlHelper {
$is_gzipped = RSSUtils::is_gzipped($data);
if ($is_gzipped) {
if ($is_gzipped && $data) {
$tmp = @gzdecode($data);
if ($tmp) $data = $tmp;

View File

@ -81,7 +81,7 @@
}
function sanity_check($db_type) {
function installer_sanity_check($db_type) {
$errors = array();
if (version_compare(PHP_VERSION, '7.0.0', '<')) {
@ -278,7 +278,7 @@
<h2>Checking configuration</h2>
<?php
$errors = sanity_check($DB_TYPE);
$errors = installer_sanity_check($DB_TYPE);
if (count($errors) > 0) {
print "<p>Some configuration tests failed. Please correct them before continuing.</p>";