Fix some PHPStan erros in Util.php
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
parent
b41e17124b
commit
337585249b
@ -50,6 +50,7 @@ use function htmlspecialchars_decode;
|
||||
use function implode;
|
||||
use function in_array;
|
||||
use function is_array;
|
||||
use function is_callable;
|
||||
use function is_object;
|
||||
use function is_string;
|
||||
use function log10;
|
||||
@ -815,12 +816,12 @@ class Util
|
||||
$timestamp = time();
|
||||
}
|
||||
|
||||
$date = preg_replace(
|
||||
$date = (string) preg_replace(
|
||||
'@%[aA]@',
|
||||
$day_of_week[(int) strftime('%w', (int) $timestamp)],
|
||||
$format
|
||||
);
|
||||
$date = preg_replace(
|
||||
$date = (string) preg_replace(
|
||||
'@%[bB]@',
|
||||
$month[(int) strftime('%m', (int) $timestamp) - 1],
|
||||
$date
|
||||
@ -833,14 +834,17 @@ class Util
|
||||
} else {
|
||||
$am_pm = _pgettext('AM/PM indication in time', 'AM');
|
||||
}
|
||||
$date = preg_replace('@%[pP]@', $am_pm, $date);
|
||||
$date = (string) preg_replace('@%[pP]@', $am_pm, $date);
|
||||
|
||||
// Can return false on windows for Japanese language
|
||||
// See https://github.com/phpmyadmin/phpmyadmin/issues/15830
|
||||
$ret = strftime($date, (int) $timestamp);
|
||||
// Some OSes such as Win8.1 Traditional Chinese version did not produce UTF-8
|
||||
// output here. See https://github.com/phpmyadmin/phpmyadmin/issues/10598
|
||||
if ($ret === false || mb_detect_encoding($ret, 'UTF-8', true) != 'UTF-8') {
|
||||
/** @phpstan-ignore-next-line */
|
||||
if ($ret === false
|
||||
|| mb_detect_encoding($ret, 'UTF-8', true) !== 'UTF-8'
|
||||
) {
|
||||
$ret = date('Y-m-d H:i:s', (int) $timestamp);
|
||||
}
|
||||
|
||||
@ -852,9 +856,9 @@ class Util
|
||||
*
|
||||
* @param string $url the URL
|
||||
*
|
||||
* @return array the parameter/value pairs, for example [0] db=sakila
|
||||
* @return array<int, string> the parameter/value pairs, for example [0] db=sakila
|
||||
*/
|
||||
public static function splitURLQuery($url)
|
||||
public static function splitURLQuery($url): array
|
||||
{
|
||||
// decode encoded url separators
|
||||
$separator = Url::getArgSeparator();
|
||||
@ -869,8 +873,10 @@ class Util
|
||||
|
||||
$url_parts = parse_url($url);
|
||||
|
||||
if (is_array($url_parts) && ! empty($url_parts['query'])) {
|
||||
return explode($separator, $url_parts['query']);
|
||||
if (is_array($url_parts) && isset($url_parts['query'])) {
|
||||
$array = explode($separator, $url_parts['query']);
|
||||
|
||||
return is_array($array) ? $array : [];
|
||||
}
|
||||
|
||||
return [];
|
||||
@ -1110,7 +1116,7 @@ class Util
|
||||
$condition = ' ' . $con_key . ' ';
|
||||
|
||||
[$con_val, $condition] = self::getConditionValue(
|
||||
! isset($row[$i]) || $row[$i] === null ? null : $row[$i],
|
||||
$row[$i] ?? null,
|
||||
$meta,
|
||||
$GLOBALS['dbi']->fieldFlags($handle, $i),
|
||||
$fields_cnt,
|
||||
@ -1153,7 +1159,7 @@ class Util
|
||||
$clause_is_unique = false;
|
||||
}
|
||||
|
||||
$where_clause = trim(preg_replace('|\s?AND$|', '', $preferred_condition));
|
||||
$where_clause = trim((string) preg_replace('|\s?AND$|', '', $preferred_condition));
|
||||
|
||||
return [
|
||||
$where_clause,
|
||||
@ -1562,7 +1568,7 @@ class Util
|
||||
$binary = false;
|
||||
}
|
||||
|
||||
$printtype = preg_replace(
|
||||
$printtype = (string) preg_replace(
|
||||
'@zerofill@',
|
||||
'',
|
||||
$printtype,
|
||||
@ -1570,7 +1576,7 @@ class Util
|
||||
$zerofill_cnt
|
||||
);
|
||||
$zerofill = ($zerofill_cnt > 0);
|
||||
$printtype = preg_replace(
|
||||
$printtype = (string) preg_replace(
|
||||
'@unsigned@',
|
||||
'',
|
||||
$printtype,
|
||||
@ -1916,10 +1922,10 @@ class Util
|
||||
foreach ($replace as $key => $val) {
|
||||
if (isset($escape_class, $escape_method)) {
|
||||
$replace[$key] = $escape_class->$escape_method($val);
|
||||
} else {
|
||||
$replace[$key] = $escape == 'backquote'
|
||||
? self::$escape($val)
|
||||
: $escape($val);
|
||||
} elseif ($escape === 'backquote') {
|
||||
$replace[$key] = self::backquote($val);
|
||||
} elseif (is_callable($escape)) {
|
||||
$replace[$key] = $escape($val);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3022,7 +3028,7 @@ class Util
|
||||
while (strlen($result) < $length) {
|
||||
// Get random byte and strip highest bit
|
||||
// to get ASCII only range
|
||||
$byte = ord($random_func(1)) & 0x7f;
|
||||
$byte = ord((string) $random_func(1)) & 0x7f;
|
||||
// We want only ASCII chars
|
||||
if ($byte <= 32) {
|
||||
continue;
|
||||
|
||||
@ -3320,56 +3320,11 @@ parameters:
|
||||
count: 1
|
||||
path: libraries/classes/Types.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#3 \\$subject of function preg_replace expects array\\|string, string\\|null given\\.$#"
|
||||
count: 3
|
||||
path: libraries/classes/Util.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$format of function strftime expects string, string\\|null given\\.$#"
|
||||
count: 1
|
||||
path: libraries/classes/Util.php
|
||||
|
||||
-
|
||||
message: "#^Strict comparison using \\=\\=\\= between string and false will always evaluate to false\\.$#"
|
||||
count: 1
|
||||
path: libraries/classes/Util.php
|
||||
|
||||
-
|
||||
message: "#^Method PhpMyAdmin\\\\Util\\:\\:splitURLQuery\\(\\) should return array but returns array\\<int, string\\>\\|false\\.$#"
|
||||
count: 1
|
||||
path: libraries/classes/Util.php
|
||||
|
||||
-
|
||||
message: "#^Offset 'query' does not exist on array\\(\\?'scheme' \\=\\> string, \\?'host' \\=\\> string, \\?'port' \\=\\> int, \\?'user' \\=\\> string, \\?'pass' \\=\\> string, \\?'path' \\=\\> string, \\?'query' \\=\\> string, \\?'fragment' \\=\\> string\\)\\.$#"
|
||||
count: 1
|
||||
path: libraries/classes/Util.php
|
||||
|
||||
-
|
||||
message: "#^Strict comparison using \\=\\=\\= between mixed and null will always evaluate to false\\.$#"
|
||||
count: 1
|
||||
path: libraries/classes/Util.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$str of function trim expects string, string\\|null given\\.$#"
|
||||
count: 2
|
||||
path: libraries/classes/Util.php
|
||||
|
||||
-
|
||||
message: "#^Trying to invoke array\\|string but it might not be a callable\\.$#"
|
||||
count: 1
|
||||
path: libraries/classes/Util.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$array_arg of function reset expects array, array\\|object given\\.$#"
|
||||
count: 1
|
||||
path: libraries/classes/Util.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$character of function ord expects string, string\\|false given\\.$#"
|
||||
count: 1
|
||||
path: libraries/classes/Util.php
|
||||
|
||||
-
|
||||
message: "#^Property PhpMyAdmin\\\\Utils\\\\HttpRequest\\:\\:\\$proxyUrl has no typehint specified\\.$#"
|
||||
count: 1
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<files psalm-version="3.12.1@9b860214d58c48b5cbe99bdb17914d0eb723c9cd">
|
||||
<files psalm-version="3.12.2@7c7ebd068f8acaba211d4a2c707c4ba90874fa26">
|
||||
<file src="libraries/classes/Advisor.php">
|
||||
<PossiblyNullArgument occurrences="1">
|
||||
<code>Util::formatByteDown($value, $limes, $comma)</code>
|
||||
@ -435,7 +435,9 @@
|
||||
<InvalidArgument occurrences="1">
|
||||
<code>$insert_errors</code>
|
||||
</InvalidArgument>
|
||||
<PossiblyNullArgument occurrences="5">
|
||||
<PossiblyNullArgument occurrences="7">
|
||||
<code>$current_value</code>
|
||||
<code>$current_value</code>
|
||||
<code>$multi_edit_columns_null</code>
|
||||
<code>$multi_edit_columns_null_prev</code>
|
||||
<code>$multi_edit_funcs</code>
|
||||
@ -747,14 +749,12 @@
|
||||
<NullableReturnStatement occurrences="1">
|
||||
<code>$this->__get('sql_query')</code>
|
||||
</NullableReturnStatement>
|
||||
<PossiblyInvalidArgument occurrences="5">
|
||||
<PossiblyInvalidArgument occurrences="3">
|
||||
<code>$col_visib</code>
|
||||
<code>$col_visib</code>
|
||||
<code>$sortExpressionNoDirection</code>
|
||||
<code>$transform_options</code>
|
||||
<code>$transform_options</code>
|
||||
</PossiblyInvalidArgument>
|
||||
<PossiblyNullArgument occurrences="57">
|
||||
<PossiblyNullArgument occurrences="56">
|
||||
<code>$this->__get('sql_query')</code>
|
||||
<code>$db</code>
|
||||
<code>$table</code>
|
||||
@ -775,7 +775,6 @@
|
||||
<code>empty($field->database) ? $this->__get('db') : $field->database</code>
|
||||
<code>$this->__get('table')</code>
|
||||
<code>$this->__get('db')</code>
|
||||
<code>$display_params</code>
|
||||
<code>$this->__get('fields_cnt')</code>
|
||||
<code>$this->__get('fields_meta')</code>
|
||||
<code>$this->__get('table')</code>
|
||||
@ -813,7 +812,7 @@
|
||||
<code>$this->__get('fields_cnt')</code>
|
||||
<code>$this->__get('fields_meta')</code>
|
||||
</PossiblyNullArgument>
|
||||
<PossiblyNullArrayAccess occurrences="32">
|
||||
<PossiblyNullArrayAccess occurrences="27">
|
||||
<code>$fields_meta[$i]</code>
|
||||
<code>$fields_meta[$i]</code>
|
||||
<code>$fields_meta[$i]</code>
|
||||
@ -835,11 +834,6 @@
|
||||
<code>$display_params['data']</code>
|
||||
<code>$display_params['data']</code>
|
||||
<code>$display_params['data']</code>
|
||||
<code>$display_params['data']</code>
|
||||
<code>$display_params['rowdata']</code>
|
||||
<code>$display_params['data']</code>
|
||||
<code>$display_params['data']</code>
|
||||
<code>$display_params['rowdata']</code>
|
||||
<code>$fields_meta[$m]</code>
|
||||
<code>$fields_meta[0]</code>
|
||||
<code>$fields_meta[1]</code>
|
||||
@ -847,7 +841,17 @@
|
||||
<code>$display_size[0]</code>
|
||||
<code>$display_size[1]</code>
|
||||
</PossiblyNullArrayAccess>
|
||||
<PossiblyNullArrayOffset occurrences="1">
|
||||
<PossiblyNullArrayAssignment occurrences="7">
|
||||
<code>$display_params['desc']</code>
|
||||
<code>$display_params['desc']</code>
|
||||
<code>$whereClauseMap[$row_no]</code>
|
||||
<code>$whereClauseMap[$row_no]</code>
|
||||
<code>$display_params['data']</code>
|
||||
<code>$display_params['data']</code>
|
||||
<code>$display_params['data']</code>
|
||||
</PossiblyNullArrayAssignment>
|
||||
<PossiblyNullArrayOffset occurrences="2">
|
||||
<code>$whereClauseMap[$row_no]</code>
|
||||
<code>$map</code>
|
||||
</PossiblyNullArrayOffset>
|
||||
<PossiblyNullIterator occurrences="2">
|
||||
@ -1123,9 +1127,6 @@
|
||||
</PossiblyNullPropertyAssignmentValue>
|
||||
</file>
|
||||
<file src="libraries/classes/Git.php">
|
||||
<InvalidArgument occurrences="1">
|
||||
<code>$user</code>
|
||||
</InvalidArgument>
|
||||
<ParadoxicalCondition occurrences="1">
|
||||
<code>null</code>
|
||||
</ParadoxicalCondition>
|
||||
@ -1873,7 +1874,8 @@
|
||||
<code>$com_rs</code>
|
||||
<code>$com_rs</code>
|
||||
</InvalidArgument>
|
||||
<InvalidReturnStatement occurrences="2">
|
||||
<InvalidReturnStatement occurrences="3">
|
||||
<code>$cfgRelation</code>
|
||||
<code>$this->queryAsControlUser($upd_query)</code>
|
||||
<code>$this->dbi->insertId(DatabaseInterface::CONNECT_CONTROL)</code>
|
||||
</InvalidReturnStatement>
|
||||
@ -2274,17 +2276,16 @@
|
||||
<EmptyArrayAccess occurrences="1">
|
||||
<code>$group[$group_name]['tab' . $sep . 'count']</code>
|
||||
</EmptyArrayAccess>
|
||||
<InvalidArrayOffset occurrences="2">
|
||||
<InvalidArrayOffset occurrences="3">
|
||||
<code>$group[$group_name]['is' . $sep . 'group']</code>
|
||||
<code>$group[$group_name]['tab' . $sep . 'count']</code>
|
||||
<code>$units[$d]</code>
|
||||
</InvalidArrayOffset>
|
||||
<InvalidReturnStatement occurrences="2">
|
||||
<InvalidReturnStatement occurrences="1">
|
||||
<code>$return_value</code>
|
||||
<code>$gis_data_types</code>
|
||||
</InvalidReturnStatement>
|
||||
<InvalidReturnType occurrences="2">
|
||||
<InvalidReturnType occurrences="1">
|
||||
<code>int</code>
|
||||
<code>string[]</code>
|
||||
</InvalidReturnType>
|
||||
<InvalidScalarArgument occurrences="1">
|
||||
<code>$value</code>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user