Skip to content

Commit 012a9cc

Browse files
Merge pull request #18294 from ru-asdx/refactor-17769-p1
Ref #17769 - Replace superglobals with serverrequest in controllers
2 parents 514ed28 + 4530585 commit 012a9cc

File tree

12 files changed

+114
-95
lines changed

12 files changed

+114
-95
lines changed

libraries/classes/Controllers/Database/ImportController.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ public function __invoke(ServerRequest $request): void
7777
$idKey = $_SESSION[$GLOBALS['SESSION_KEY']]['handler']::getIdKey();
7878
$hiddenInputs = [$idKey => $uploadId, 'import_type' => 'database', 'db' => $GLOBALS['db']];
7979

80-
$default = isset($_GET['format']) ? (string) $_GET['format'] : Plugins::getDefault('Import', 'format');
80+
$default = $request->hasQueryParam('format')
81+
? (string) $request->getQueryParam('format')
82+
: Plugins::getDefault('Import', 'format');
8183
$choice = Plugins::getChoice($importList, $default);
8284
$options = Plugins::getOptions('Import', $importList);
8385
$skipQueriesDefault = Plugins::getDefault('Import', 'skip_queries');

libraries/classes/Controllers/Server/ImportController.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,9 @@ public function __invoke(ServerRequest $request): void
7373
$idKey = $_SESSION[$GLOBALS['SESSION_KEY']]['handler']::getIdKey();
7474
$hiddenInputs = [$idKey => $uploadId, 'import_type' => 'server'];
7575

76-
$default = isset($_GET['format']) ? (string) $_GET['format'] : Plugins::getDefault('Import', 'format');
76+
$default = $request->hasQueryParam('format')
77+
? (string) $request->getQueryParam('format')
78+
: Plugins::getDefault('Import', 'format');
7779
$choice = Plugins::getChoice($importList, $default);
7880
$options = Plugins::getOptions('Import', $importList);
7981
$skipQueriesDefault = Plugins::getDefault('Import', 'skip_queries');

libraries/classes/Controllers/Server/UserGroupsFormController.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
use function __;
1919
use function sprintf;
20-
use function strlen;
2120

2221
final class UserGroupsFormController extends AbstractController
2322
{
@@ -34,16 +33,17 @@ public function __invoke(ServerRequest $request): void
3433
{
3534
$this->response->setAjax(true);
3635

37-
if (! isset($_GET['username']) || strlen((string) $_GET['username']) === 0) {
36+
/** @var string $username */
37+
$username = $request->getQueryParam('username', '');
38+
39+
if ($username === '') {
3840
$this->response->setRequestStatus(false);
3941
$this->response->setHttpResponseCode(400);
4042
$this->response->addJSON('message', __('Missing parameter:') . ' username');
4143

4244
return;
4345
}
4446

45-
$username = $_GET['username'];
46-
4747
$checkUserPrivileges = new CheckUserPrivileges($this->dbi);
4848
$checkUserPrivileges->getPrivileges();
4949

libraries/classes/Controllers/Sql/SqlController.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,10 @@ public function __invoke(ServerRequest $request): void
112112
$GLOBALS['sql_query'] = $bkmFields['bkm_sql_query'];
113113
} elseif ($sqlQuery !== null) {
114114
$GLOBALS['sql_query'] = $sqlQuery;
115-
} elseif (isset($_GET['sql_query'], $_GET['sql_signature'])) {
116-
if (Core::checkSqlQuerySignature($_GET['sql_query'], $_GET['sql_signature'])) {
117-
$GLOBALS['sql_query'] = $_GET['sql_query'];
115+
} elseif ($request->hasQueryParam('sql_query') && $request->hasQueryParam('sql_signature')) {
116+
$sqlQuery = $request->getQueryParam('sql_query');
117+
if (Core::checkSqlQuerySignature($sqlQuery, $request->getQueryParam('sql_signature'))) {
118+
$GLOBALS['sql_query'] = $sqlQuery;
118119
}
119120
}
120121

libraries/classes/Controllers/Table/ChangeController.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,10 @@ public function __invoke(ServerRequest $request): void
7575

7676
DbTableExists::check($GLOBALS['db'], $GLOBALS['table']);
7777

78-
if (isset($_GET['where_clause'], $_GET['where_clause_signature'])) {
79-
if (Core::checkSqlQuerySignature($_GET['where_clause'], $_GET['where_clause_signature'])) {
80-
$GLOBALS['where_clause'] = $_GET['where_clause'];
78+
if ($request->hasQueryParam('where_clause') && $request->hasQueryParam('where_clause_signature')) {
79+
$whereClause = $request->getQueryParam('where_clause');
80+
if (Core::checkSqlQuerySignature($whereClause, $request->getQueryParam('where_clause_signature'))) {
81+
$GLOBALS['where_clause'] = $whereClause;
8182
}
8283
}
8384

libraries/classes/Controllers/Table/ExportController.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public function __invoke(ServerRequest $request): void
9292
$GLOBALS['unlim_num_rows'] = 0;
9393
}
9494

95-
$GLOBALS['single_table'] = $_POST['single_table'] ?? $_GET['single_table'] ?? $GLOBALS['single_table'] ?? null;
95+
$GLOBALS['single_table'] = $request->getParam('single_table') ?? $GLOBALS['single_table'] ?? null;
9696

9797
$exportList = Plugins::getExport('table', isset($GLOBALS['single_table']));
9898

@@ -105,8 +105,8 @@ public function __invoke(ServerRequest $request): void
105105
}
106106

107107
$exportType = 'table';
108-
$isReturnBackFromRawExport = isset($_POST['export_type']) && $_POST['export_type'] === 'raw';
109-
if (isset($_POST['raw_query']) || $isReturnBackFromRawExport) {
108+
$isReturnBackFromRawExport = $request->getParsedBodyParam('export_type') === 'raw';
109+
if ($request->hasBodyParam('raw_query') || $isReturnBackFromRawExport) {
110110
$exportType = 'raw';
111111
}
112112

libraries/classes/Controllers/Table/ImportController.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,9 @@ public function __invoke(ServerRequest $request): void
8989
'table' => $GLOBALS['table'],
9090
];
9191

92-
$default = isset($_GET['format']) ? (string) $_GET['format'] : Plugins::getDefault('Import', 'format');
92+
$default = $request->hasQueryParam('format')
93+
? (string) $request->getQueryParam('format')
94+
: Plugins::getDefault('Import', 'format');
9395
$choice = Plugins::getChoice($importList, $default);
9496
$options = Plugins::getOptions('Import', $importList);
9597
$skipQueriesDefault = Plugins::getDefault('Import', 'skip_queries');

libraries/classes/Controllers/Table/SqlController.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,14 @@ public function __invoke(ServerRequest $request): void
5555
*/
5656
$GLOBALS['goto'] = Url::getFromRoute('/table/sql');
5757
$GLOBALS['back'] = Url::getFromRoute('/table/sql');
58+
$delimiter = $request->getParsedBodyParam('delimiter', ';');
5859

5960
$this->response->addHTML($this->sqlQueryForm->getHtml(
6061
$GLOBALS['db'],
6162
$GLOBALS['table'],
62-
$_GET['sql_query'] ?? true,
63+
$request->getQueryParam('sql_query', true),
6364
false,
64-
isset($_POST['delimiter'])
65-
? htmlspecialchars($_POST['delimiter'])
66-
: ';',
65+
htmlspecialchars($delimiter),
6766
));
6867
}
6968
}

libraries/classes/Controllers/View/CreateController.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,18 +121,20 @@ public function __invoke(ServerRequest $request): void
121121
];
122122

123123
// Used to prefill the fields when editing a view
124-
if (isset($_GET['db'], $_GET['table'])) {
124+
if ($request->hasQueryParam('db') && $request->hasQueryParam('table')) {
125+
$db = $request->getQueryParam('db');
126+
$table = $request->getQueryParam('table');
125127
$item = $this->dbi->fetchSingleRow(
126128
sprintf(
127129
'SELECT `VIEW_DEFINITION`, `CHECK_OPTION`, `DEFINER`, `SECURITY_TYPE`
128130
FROM `INFORMATION_SCHEMA`.`VIEWS`
129131
WHERE TABLE_SCHEMA=%s
130132
AND TABLE_NAME=%s;',
131-
$this->dbi->quoteString($_GET['db']),
132-
$this->dbi->quoteString($_GET['table']),
133+
$this->dbi->quoteString($db),
134+
$this->dbi->quoteString($table),
133135
),
134136
);
135-
$createView = $this->dbi->getTable($_GET['db'], $_GET['table'])
137+
$createView = $this->dbi->getTable($db, $table)
136138
->showCreate();
137139

138140
// CREATE ALGORITHM=<ALGORITHM> DE...
@@ -141,7 +143,7 @@ public function __invoke(ServerRequest $request): void
141143
$viewData['operation'] = 'alter';
142144
$viewData['definer'] = $item['DEFINER'];
143145
$viewData['sql_security'] = $item['SECURITY_TYPE'];
144-
$viewData['name'] = $_GET['table'];
146+
$viewData['name'] = $table;
145147
$viewData['as'] = $item['VIEW_DEFINITION'];
146148
$viewData['with'] = $item['CHECK_OPTION'];
147149
$viewData['algorithm'] = $item['ALGORITHM'];

phpstan-baseline.neon

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,6 +1035,11 @@ parameters:
10351035
count: 1
10361036
path: libraries/classes/Controllers/Database/DesignerController.php
10371037

1038+
-
1039+
message: "#^Cannot cast mixed to string\\.$#"
1040+
count: 1
1041+
path: libraries/classes/Controllers/Database/ImportController.php
1042+
10381043
-
10391044
message: "#^Parameter \\#1 \\$sqlQuery of static method PhpMyAdmin\\\\Database\\\\MultiTableQuery\\:\\:displayResults\\(\\) expects string, mixed given\\.$#"
10401045
count: 1
@@ -1810,6 +1815,11 @@ parameters:
18101815
count: 1
18111816
path: libraries/classes/Controllers/Server/DatabasesController.php
18121817

1818+
-
1819+
message: "#^Cannot cast mixed to string\\.$#"
1820+
count: 1
1821+
path: libraries/classes/Controllers/Server/ImportController.php
1822+
18131823
-
18141824
message: "#^Method PhpMyAdmin\\\\Controllers\\\\Server\\\\PrivilegesController\\:\\:getExportPageTitle\\(\\) has parameter \\$selectedUsers with no value type specified in iterable type array\\.$#"
18151825
count: 1
@@ -2075,11 +2085,31 @@ parameters:
20752085
count: 1
20762086
path: libraries/classes/Controllers/Sql/SetValuesController.php
20772087

2088+
-
2089+
message: "#^Parameter \\#1 \\$sqlQuery of static method PhpMyAdmin\\\\Core\\:\\:checkSqlQuerySignature\\(\\) expects string, mixed given\\.$#"
2090+
count: 1
2091+
path: libraries/classes/Controllers/Sql/SqlController.php
2092+
2093+
-
2094+
message: "#^Parameter \\#2 \\$signature of static method PhpMyAdmin\\\\Core\\:\\:checkSqlQuerySignature\\(\\) expects string, mixed given\\.$#"
2095+
count: 1
2096+
path: libraries/classes/Controllers/Sql/SqlController.php
2097+
20782098
-
20792099
message: "#^Parameter \\#1 \\$target of static method PhpMyAdmin\\\\Util\\:\\:getScriptNameForOption\\(\\) expects string, mixed given\\.$#"
20802100
count: 1
20812101
path: libraries/classes/Controllers/Table/AddFieldController.php
20822102

2103+
-
2104+
message: "#^Parameter \\#1 \\$sqlQuery of static method PhpMyAdmin\\\\Core\\:\\:checkSqlQuerySignature\\(\\) expects string, mixed given\\.$#"
2105+
count: 1
2106+
path: libraries/classes/Controllers/Table/ChangeController.php
2107+
2108+
-
2109+
message: "#^Parameter \\#2 \\$signature of static method PhpMyAdmin\\\\Core\\:\\:checkSqlQuerySignature\\(\\) expects string, mixed given\\.$#"
2110+
count: 1
2111+
path: libraries/classes/Controllers/Table/ChangeController.php
2112+
20832113
-
20842114
message: "#^Parameter \\#2 \\$offset of class PhpMyAdmin\\\\SqlParser\\\\Components\\\\Limit constructor expects int, \\(float\\|int\\) given\\.$#"
20852115
count: 1
@@ -2130,6 +2160,11 @@ parameters:
21302160
count: 1
21312161
path: libraries/classes/Controllers/Table/GetFieldController.php
21322162

2163+
-
2164+
message: "#^Cannot cast mixed to string\\.$#"
2165+
count: 1
2166+
path: libraries/classes/Controllers/Table/ImportController.php
2167+
21332168
-
21342169
message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, mixed given\\.$#"
21352170
count: 1
@@ -2275,6 +2310,16 @@ parameters:
22752310
count: 1
22762311
path: libraries/classes/Controllers/Table/SearchController.php
22772312

2313+
-
2314+
message: "#^Parameter \\#1 \\$string of function htmlspecialchars expects string, mixed given\\.$#"
2315+
count: 1
2316+
path: libraries/classes/Controllers/Table/SqlController.php
2317+
2318+
-
2319+
message: "#^Parameter \\#3 \\$query of method PhpMyAdmin\\\\SqlQueryForm\\:\\:getHtml\\(\\) expects bool\\|string, mixed given\\.$#"
2320+
count: 1
2321+
path: libraries/classes/Controllers/Table/SqlController.php
2322+
22782323
-
22792324
message: "#^Parameter \\#1 \\$selected of method PhpMyAdmin\\\\Controllers\\\\Table\\\\Structure\\\\ChangeController\\:\\:displayHtmlForColumnChange\\(\\) expects array\\<string\\>, array\\<int, mixed\\> given\\.$#"
22802325
count: 1
@@ -2610,11 +2655,26 @@ parameters:
26102655
count: 1
26112656
path: libraries/classes/Controllers/View/CreateController.php
26122657

2658+
-
2659+
message: "#^Parameter \\#1 \\$dbName of method PhpMyAdmin\\\\DatabaseInterface\\:\\:getTable\\(\\) expects string, mixed given\\.$#"
2660+
count: 1
2661+
path: libraries/classes/Controllers/View/CreateController.php
2662+
2663+
-
2664+
message: "#^Parameter \\#1 \\$str of method PhpMyAdmin\\\\DatabaseInterface\\:\\:quoteString\\(\\) expects string, mixed given\\.$#"
2665+
count: 2
2666+
path: libraries/classes/Controllers/View/CreateController.php
2667+
26132668
-
26142669
message: "#^Parameter \\#2 \\$string of function explode expects string, mixed given\\.$#"
26152670
count: 1
26162671
path: libraries/classes/Controllers/View/CreateController.php
26172672

2673+
-
2674+
message: "#^Parameter \\#2 \\$tableName of method PhpMyAdmin\\\\DatabaseInterface\\:\\:getTable\\(\\) expects string, mixed given\\.$#"
2675+
count: 1
2676+
path: libraries/classes/Controllers/View/CreateController.php
2677+
26182678
-
26192679
message: "#^Property PhpMyAdmin\\\\SqlParser\\\\Statements\\\\CreateStatement\\:\\:\\$body \\(array\\<PhpMyAdmin\\\\SqlParser\\\\Token\\>\\|string\\) in isset\\(\\) is not nullable\\.$#"
26202680
count: 1

0 commit comments

Comments
 (0)