Skip to content

Commit c69fa7c

Browse files
Merge pull request #19456 from kamil-tekiela/Table-type-hints
Improve Table type hints
2 parents 7d7da4a + d950ad8 commit c69fa7c

3 files changed

Lines changed: 39 additions & 138 deletions

File tree

phpstan-baseline.neon

Lines changed: 11 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -4660,7 +4660,7 @@ parameters:
46604660
path: src/Controllers/Table/RelationController.php
46614661

46624662
-
4663-
message: '#^Parameter \#1 \$destinationForeignDb of method PhpMyAdmin\\Table\\Table\:\:updateForeignKeys\(\) expects array\<mixed\>, mixed given\.$#'
4663+
message: '#^Parameter \#1 \$destinationForeignDb of method PhpMyAdmin\\Table\\Table\:\:updateForeignKeys\(\) expects array\<string\>, mixed given\.$#'
46644664
identifier: argument.type
46654665
count: 1
46664666
path: src/Controllers/Table/RelationController.php
@@ -4678,7 +4678,7 @@ parameters:
46784678
path: src/Controllers/Table/RelationController.php
46794679

46804680
-
4681-
message: '#^Parameter \#1 \$multiEditColumnsName of method PhpMyAdmin\\Table\\Table\:\:updateInternalRelations\(\) expects array\<mixed\>, mixed given\.$#'
4681+
message: '#^Parameter \#1 \$multiEditColumnsName of method PhpMyAdmin\\Table\\Table\:\:updateInternalRelations\(\) expects array\<string\>, mixed given\.$#'
46824682
identifier: argument.type
46834683
count: 1
46844684
path: src/Controllers/Table/RelationController.php
@@ -4690,13 +4690,13 @@ parameters:
46904690
path: src/Controllers/Table/RelationController.php
46914691

46924692
-
4693-
message: '#^Parameter \#2 \$destinationDb of method PhpMyAdmin\\Table\\Table\:\:updateInternalRelations\(\) expects array\<mixed\>, mixed given\.$#'
4693+
message: '#^Parameter \#2 \$destinationDb of method PhpMyAdmin\\Table\\Table\:\:updateInternalRelations\(\) expects array\<string\>, mixed given\.$#'
46944694
identifier: argument.type
46954695
count: 1
46964696
path: src/Controllers/Table/RelationController.php
46974697

46984698
-
4699-
message: '#^Parameter \#2 \$multiEditColumnsName of method PhpMyAdmin\\Table\\Table\:\:updateForeignKeys\(\) expects array\<mixed\>, mixed given\.$#'
4699+
message: '#^Parameter \#2 \$multiEditColumnsName of method PhpMyAdmin\\Table\\Table\:\:updateForeignKeys\(\) expects array\<array\<string\>\>, mixed given\.$#'
47004700
identifier: argument.type
47014701
count: 1
47024702
path: src/Controllers/Table/RelationController.php
@@ -4714,13 +4714,13 @@ parameters:
47144714
path: src/Controllers/Table/RelationController.php
47154715

47164716
-
4717-
message: '#^Parameter \#3 \$destinationForeignTable of method PhpMyAdmin\\Table\\Table\:\:updateForeignKeys\(\) expects array\<mixed\>, mixed given\.$#'
4717+
message: '#^Parameter \#3 \$destinationForeignTable of method PhpMyAdmin\\Table\\Table\:\:updateForeignKeys\(\) expects array\<string\>, mixed given\.$#'
47184718
identifier: argument.type
47194719
count: 1
47204720
path: src/Controllers/Table/RelationController.php
47214721

47224722
-
4723-
message: '#^Parameter \#3 \$destinationTable of method PhpMyAdmin\\Table\\Table\:\:updateInternalRelations\(\) expects array\<mixed\>, mixed given\.$#'
4723+
message: '#^Parameter \#3 \$destinationTable of method PhpMyAdmin\\Table\\Table\:\:updateInternalRelations\(\) expects array\<string\|null\>, mixed given\.$#'
47244724
identifier: argument.type
47254725
count: 1
47264726
path: src/Controllers/Table/RelationController.php
@@ -4732,13 +4732,13 @@ parameters:
47324732
path: src/Controllers/Table/RelationController.php
47334733

47344734
-
4735-
message: '#^Parameter \#4 \$destinationColumn of method PhpMyAdmin\\Table\\Table\:\:updateInternalRelations\(\) expects array\<mixed\>, mixed given\.$#'
4735+
message: '#^Parameter \#4 \$destinationColumn of method PhpMyAdmin\\Table\\Table\:\:updateInternalRelations\(\) expects array\<string\|null\>, mixed given\.$#'
47364736
identifier: argument.type
47374737
count: 1
47384738
path: src/Controllers/Table/RelationController.php
47394739

47404740
-
4741-
message: '#^Parameter \#4 \$destinationForeignColumn of method PhpMyAdmin\\Table\\Table\:\:updateForeignKeys\(\) expects array\<mixed\>, mixed given\.$#'
4741+
message: '#^Parameter \#4 \$destinationForeignColumn of method PhpMyAdmin\\Table\\Table\:\:updateForeignKeys\(\) expects array\<array\<string\>\>, mixed given\.$#'
47424742
identifier: argument.type
47434743
count: 1
47444744
path: src/Controllers/Table/RelationController.php
@@ -17133,18 +17133,6 @@ parameters:
1713317133
count: 1
1713417134
path: src/Table/Search.php
1713517135

17136-
-
17137-
message: '#^Argument of an invalid type mixed supplied for foreach, only iterables are supported\.$#'
17138-
identifier: foreach.nonIterable
17139-
count: 1
17140-
path: src/Table/Table.php
17141-
17142-
-
17143-
message: '#^Binary operation "\." between string and mixed results in an error\.$#'
17144-
identifier: binaryOp.invalid
17145-
count: 1
17146-
path: src/Table/Table.php
17147-
1714817136
-
1714917137
message: '#^Binary operation "\.\=" between string and mixed results in an error\.$#'
1715017138
identifier: assignOp.invalid
@@ -17235,12 +17223,6 @@ parameters:
1723517223
count: 3
1723617224
path: src/Table/Table.php
1723717225

17238-
-
17239-
message: '#^Cannot access offset mixed on mixed\.$#'
17240-
identifier: offsetAccess.nonOffsetAccessible
17241-
count: 5
17242-
path: src/Table/Table.php
17243-
1724417226
-
1724517227
message: '#^Cannot access offset string on mixed\.$#'
1724617228
identifier: offsetAccess.nonOffsetAccessible
@@ -17283,18 +17265,6 @@ parameters:
1728317265
count: 1
1728417266
path: src/Table/Table.php
1728517267

17286-
-
17287-
message: '#^Method PhpMyAdmin\\Table\\Table\:\:getLastError\(\) should return string but returns mixed\.$#'
17288-
identifier: return.type
17289-
count: 1
17290-
path: src/Table/Table.php
17291-
17292-
-
17293-
message: '#^Method PhpMyAdmin\\Table\\Table\:\:getLastMessage\(\) should return string but returns mixed\.$#'
17294-
identifier: return.type
17295-
count: 1
17296-
path: src/Table/Table.php
17297-
1729817268
-
1729917269
message: '#^Method PhpMyAdmin\\Table\\Table\:\:getNameAndTypeOfTheColumns\(\) should return array\<string, string\> but returns array\.$#'
1730017270
identifier: return.type
@@ -17346,13 +17316,13 @@ parameters:
1734617316
-
1734717317
message: '#^Parameter \#1 \$identifier of static method PhpMyAdmin\\Util\:\:backquote\(\) expects string\|Stringable\|null, mixed given\.$#'
1734817318
identifier: argument.type
17349-
count: 5
17319+
count: 2
1735017320
path: src/Table/Table.php
1735117321

1735217322
-
17353-
message: '#^Parameter \#1 \$str of method PhpMyAdmin\\DatabaseInterface\:\:quoteString\(\) expects string, mixed given\.$#'
17323+
message: '#^Parameter \#1 \$indexed of method PhpMyAdmin\\Table\\Table\:\:formatColumns\(\) expects array\<string\>, array\<mixed\> given\.$#'
1735417324
identifier: argument.type
17355-
count: 9
17325+
count: 2
1735617326
path: src/Table/Table.php
1735717327

1735817328
-
@@ -17373,18 +17343,6 @@ parameters:
1737317343
count: 1
1737417344
path: src/Table/Table.php
1737517345

17376-
-
17377-
message: '#^Parameter \#2 \$array of function implode expects array\|null, mixed given\.$#'
17378-
identifier: argument.type
17379-
count: 1
17380-
path: src/Table/Table.php
17381-
17382-
-
17383-
message: '#^Parameter \#2 \$field of method PhpMyAdmin\\Table\\Table\:\:getSQLToCreateForeignKey\(\) expects array\<mixed\>, mixed given\.$#'
17384-
identifier: argument.type
17385-
count: 2
17386-
path: src/Table/Table.php
17387-
1738817346
-
1738917347
message: '#^Parameter \#2 \$string of function explode expects string, mixed given\.$#'
1739017348
identifier: argument.type
@@ -17397,36 +17355,18 @@ parameters:
1739717355
count: 1
1739817356
path: src/Table/Table.php
1739917357

17400-
-
17401-
message: '#^Parameter \#3 \$foreignDb of method PhpMyAdmin\\Table\\Table\:\:getSQLToCreateForeignKey\(\) expects string, mixed given\.$#'
17402-
identifier: argument.type
17403-
count: 1
17404-
path: src/Table/Table.php
17405-
1740617358
-
1740717359
message: '#^Parameter \#3 \$foreignDb of method PhpMyAdmin\\Table\\Table\:\:getSQLToCreateForeignKey\(\) expects string, string\|null given\.$#'
1740817360
identifier: argument.type
1740917361
count: 1
1741017362
path: src/Table/Table.php
1741117363

17412-
-
17413-
message: '#^Parameter \#4 \$foreignTable of method PhpMyAdmin\\Table\\Table\:\:getSQLToCreateForeignKey\(\) expects string, mixed given\.$#'
17414-
identifier: argument.type
17415-
count: 1
17416-
path: src/Table/Table.php
17417-
1741817364
-
1741917365
message: '#^Parameter \#4 \$foreignTable of method PhpMyAdmin\\Table\\Table\:\:getSQLToCreateForeignKey\(\) expects string, string\|null given\.$#'
1742017366
identifier: argument.type
1742117367
count: 1
1742217368
path: src/Table/Table.php
1742317369

17424-
-
17425-
message: '#^Parameter \#5 \$foreignField of method PhpMyAdmin\\Table\\Table\:\:getSQLToCreateForeignKey\(\) expects array\<mixed\>, mixed given\.$#'
17426-
identifier: argument.type
17427-
count: 1
17428-
path: src/Table/Table.php
17429-
1743017370
-
1743117371
message: '#^Parameter \#6 \$name of method PhpMyAdmin\\Table\\Table\:\:getSQLToCreateForeignKey\(\) expects string\|null, mixed given\.$#'
1743217372
identifier: argument.type

psalm-baseline.xml

Lines changed: 12 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -2982,24 +2982,24 @@
29822982
<code><![CDATA[Config::getInstance()]]></code>
29832983
</DeprecatedMethod>
29842984
<InvalidArgument>
2985-
<code><![CDATA[usort($tables, strnatcasecmp(...))]]></code>
2986-
</InvalidArgument>
2987-
<PossiblyInvalidArgument>
29882985
<code><![CDATA[$_POST['destination_column']]]></code>
29892986
<code><![CDATA[$_POST['destination_db']]]></code>
29902987
<code><![CDATA[$_POST['destination_foreign_column']]]></code>
29912988
<code><![CDATA[$_POST['destination_foreign_db']]]></code>
29922989
<code><![CDATA[$_POST['destination_foreign_table']]]></code>
29932990
<code><![CDATA[$_POST['destination_table']]]></code>
2991+
<code><![CDATA[$multiEditColumnsName]]></code>
2992+
<code><![CDATA[$multiEditColumnsName]]></code>
2993+
<code><![CDATA[usort($tables, strnatcasecmp(...))]]></code>
2994+
</InvalidArgument>
2995+
<PossiblyInvalidArgument>
29942996
<code><![CDATA[$_POST['display_field']]]></code>
29952997
<code><![CDATA[$_POST['foreignDb']]]></code>
29962998
<code><![CDATA[$_POST['foreignDb']]]></code>
29972999
<code><![CDATA[$_POST['foreignDb']]]></code>
29983000
<code><![CDATA[$_POST['foreignDb']]]></code>
29993001
<code><![CDATA[$foreignTable]]></code>
30003002
<code><![CDATA[$foreignTable]]></code>
3001-
<code><![CDATA[$multiEditColumnsName]]></code>
3002-
<code><![CDATA[$multiEditColumnsName]]></code>
30033003
</PossiblyInvalidArgument>
30043004
<PossiblyInvalidCast>
30053005
<code><![CDATA[$_POST['display_field']]]></code>
@@ -9925,37 +9925,20 @@
99259925
</InvalidReturnType>
99269926
<MixedArgument>
99279927
<code><![CDATA[$_POST['constraint_name'][$masterFieldMd5]]]></code>
9928-
<code><![CDATA[$column]]></code>
99299928
<code><![CDATA[$column['Extra']]]></code>
99309929
<code><![CDATA[$column['Extra']]]></code>
99319930
<code><![CDATA[$fields[$column]['expr']]]></code>
9932-
<code><![CDATA[$foreignDb]]></code>
9933-
<code><![CDATA[$foreignDb]]></code>
9934-
<code><![CDATA[$foreignDb]]></code>
9935-
<code><![CDATA[$foreignField]]></code>
9936-
<code><![CDATA[$foreignField]]></code>
9937-
<code><![CDATA[$foreignField]]></code>
9938-
<code><![CDATA[$foreignTable]]></code>
9939-
<code><![CDATA[$foreignTable]]></code>
9940-
<code><![CDATA[$foreignTable]]></code>
99419931
<code><![CDATA[$index]]></code>
99429932
<code><![CDATA[$index[0]]]></code>
9943-
<code><![CDATA[$masterField]]></code>
9944-
<code><![CDATA[$masterField]]></code>
9945-
<code><![CDATA[$masterField]]></code>
9946-
<code><![CDATA[$masterField]]></code>
9947-
<code><![CDATA[$oneField]]></code>
9948-
<code><![CDATA[$oneField]]></code>
99499933
<code><![CDATA[$options['expr']]]></code>
99509934
<code><![CDATA[$row['Type']]]></code>
99519935
<code><![CDATA[$this->uiprefs[$property->value]]]></code>
99529936
<code><![CDATA[$this->uiprefs[$property->value]]]></code>
99539937
<code><![CDATA[$value]]></code>
99549938
</MixedArgument>
99559939
<MixedArgumentTypeCoercion>
9956-
<code><![CDATA[$field]]></code>
9957-
<code><![CDATA[$foreignField]]></code>
9958-
<code><![CDATA[$masterField]]></code>
9940+
<code><![CDATA[$indexed]]></code>
9941+
<code><![CDATA[$indexed]]></code>
99599942
</MixedArgumentTypeCoercion>
99609943
<MixedArrayAccess>
99619944
<code><![CDATA[$_SESSION['tmpval']['table_uiprefs'][$serverId][$this->dbName][$this->name]]]></code>
@@ -9965,10 +9948,8 @@
99659948
<code><![CDATA[$existrel[$masterField]['foreign_db']]]></code>
99669949
<code><![CDATA[$existrel[$masterField]['foreign_field']]]></code>
99679950
<code><![CDATA[$existrel[$masterField]['foreign_table']]]></code>
9968-
<code><![CDATA[$foreignField[$key]]]></code>
99699951
<code><![CDATA[$index[0]]]></code>
99709952
<code><![CDATA[$index[0]]]></code>
9971-
<code><![CDATA[$masterField[$key]]]></code>
99729953
<code><![CDATA[$row['Field']]]></code>
99739954
<code><![CDATA[$row['Field']]]></code>
99749955
<code><![CDATA[$row['Type']]]></code>
@@ -9983,49 +9964,24 @@
99839964
<MixedArrayOffset>
99849965
<code><![CDATA[$columns[$row['Field']]]]></code>
99859966
<code><![CDATA[$columns[$row['Field']]]]></code>
9986-
<code><![CDATA[$existrel[$masterField]]]></code>
9987-
<code><![CDATA[$existrel[$masterField]]]></code>
9988-
<code><![CDATA[$foreignField[$key]]]></code>
9989-
<code><![CDATA[$foreignField[$key]]]></code>
9990-
<code><![CDATA[$foreignField[$key]]]></code>
9991-
<code><![CDATA[$foreignField[$key]]]></code>
9992-
<code><![CDATA[$masterField[$key]]]></code>
99939967
<code><![CDATA[$optionsArray[$_POST['on_delete'][$masterFieldMd5]]]]></code>
99949968
<code><![CDATA[$optionsArray[$_POST['on_update'][$masterFieldMd5]]]]></code>
99959969
</MixedArrayOffset>
99969970
<MixedAssignment>
9997-
<code><![CDATA[$column]]></code>
99989971
<code><![CDATA[$column]]></code>
99999972
<code><![CDATA[$columns[$row['Field']]]]></code>
10000-
<code><![CDATA[$foreignDb]]></code>
10001-
<code><![CDATA[$foreignDb]]></code>
10002-
<code><![CDATA[$foreignField]]></code>
10003-
<code><![CDATA[$foreignField]]></code>
10004-
<code><![CDATA[$foreignTable]]></code>
10005-
<code><![CDATA[$foreignTable]]></code>
100069973
<code><![CDATA[$index]]></code>
10007-
<code><![CDATA[$key]]></code>
10008-
<code><![CDATA[$masterField]]></code>
10009-
<code><![CDATA[$masterField]]></code>
10010-
<code><![CDATA[$oneField]]></code>
10011-
<code><![CDATA[$oneField]]></code>
10012-
<code><![CDATA[$oneField]]></code>
100139974
<code><![CDATA[$ret[]]]></code>
100149975
<code><![CDATA[$row]]></code>
100159976
<code><![CDATA[$value]]></code>
100169977
</MixedAssignment>
100179978
<MixedInferredReturnType>
100189979
<code><![CDATA[mixed[]]]></code>
10019-
<code><![CDATA[string]]></code>
10020-
<code><![CDATA[string]]></code>
100219980
</MixedInferredReturnType>
100229981
<MixedOperand>
10023-
<code><![CDATA[$backquoted ? Util::backquote($column) : $column]]></code>
100249982
<code><![CDATA[$index[0]]]></code>
100259983
</MixedOperand>
100269984
<MixedReturnStatement>
10027-
<code><![CDATA[end($this->errors)]]></code>
10028-
<code><![CDATA[end($this->messages)]]></code>
100299985
<code><![CDATA[json_decode($value, true)]]></code>
100309986
</MixedReturnStatement>
100319987
<MixedReturnTypeCoercion>
@@ -10059,6 +10015,11 @@
1005910015
<RiskyTruthyFalsyComparison>
1006010016
<code><![CDATA[empty($existrelForeign[$masterFieldMd5]->onDelete)]]></code>
1006110017
<code><![CDATA[empty($existrelForeign[$masterFieldMd5]->onUpdate)]]></code>
10018+
<code><![CDATA[empty($foreignField)]]></code>
10019+
<code><![CDATA[empty($foreignField[$key])]]></code>
10020+
<code><![CDATA[empty($foreignField[$key])]]></code>
10021+
<code><![CDATA[empty($foreignField[$key])]]></code>
10022+
<code><![CDATA[empty($foreignTable)]]></code>
1006210023
</RiskyTruthyFalsyComparison>
1006310024
<UnsupportedPropertyReferenceUsage>
1006410025
<code><![CDATA[$this->uiprefs =& $_SESSION['tmpval']['table_uiprefs'][$serverId][$this->dbName][$this->name]]]></code>

0 commit comments

Comments
 (0)