Skip to content

Commit 5abc1a5

Browse files
Merge pull request #18847 from kamil-tekiela/CentralColumnsController
Refactor CentralColumnsController to use DatabaseName
2 parents 20d50d3 + 3e837d1 commit 5abc1a5

3 files changed

Lines changed: 34 additions & 59 deletions

File tree

‎phpstan-baseline.neon‎

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1505,58 +1505,38 @@ parameters:
15051505
count: 1
15061506
path: src/Controllers/Database/CentralColumns/PopulateColumnsController.php
15071507

1508-
-
1509-
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
1510-
count: 1
1511-
path: src/Controllers/Database/CentralColumnsController.php
1512-
15131508
-
15141509
message: "#^Parameter \\#1 \\$database of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:deleteColumnsFromList\\(\\) expects string, mixed given\\.$#"
15151510
count: 1
15161511
path: src/Controllers/Database/CentralColumnsController.php
15171512

15181513
-
1519-
message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:getColumnsCount\\(\\) expects string, mixed given\\.$#"
1520-
count: 1
1521-
path: src/Controllers/Database/CentralColumnsController.php
1522-
1523-
-
1524-
message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:getCount\\(\\) expects string, mixed given\\.$#"
1514+
message: "#^Parameter \\#1 \\$fieldSelect of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:syncUniqueColumns\\(\\) expects array\\<string\\>, array\\<int, mixed\\> given\\.$#"
15251515
count: 1
15261516
path: src/Controllers/Database/CentralColumnsController.php
15271517

15281518
-
1529-
message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:getListRaw\\(\\) expects string, mixed given\\.$#"
1519+
message: "#^Parameter \\#1 \\$string of function parse_str expects string, mixed given\\.$#"
15301520
count: 1
15311521
path: src/Controllers/Database/CentralColumnsController.php
15321522

15331523
-
1534-
message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:getTemplateVariablesForMain\\(\\) expects string, mixed given\\.$#"
1524+
message: "#^Parameter \\#1 \\$totalRows of method PhpMyAdmin\\\\Controllers\\\\Database\\\\CentralColumnsController\\:\\:main\\(\\) expects string, mixed given\\.$#"
15351525
count: 1
15361526
path: src/Controllers/Database/CentralColumnsController.php
15371527

15381528
-
1539-
message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:updateOneColumn\\(\\) expects string, mixed given\\.$#"
1529+
message: "#^Parameter \\#10 \\$colDefault of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:updateOneColumn\\(\\) expects string, mixed given\\.$#"
15401530
count: 2
15411531
path: src/Controllers/Database/CentralColumnsController.php
15421532

15431533
-
1544-
message: "#^Parameter \\#1 \\$fieldSelect of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:syncUniqueColumns\\(\\) expects array\\<string\\>, array\\<int, mixed\\> given\\.$#"
1545-
count: 1
1546-
path: src/Controllers/Database/CentralColumnsController.php
1547-
1548-
-
1549-
message: "#^Parameter \\#1 \\$string of function parse_str expects string, mixed given\\.$#"
1534+
message: "#^Parameter \\#2 \\$origColName of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:updateOneColumn\\(\\) expects string, mixed given\\.$#"
15501535
count: 1
15511536
path: src/Controllers/Database/CentralColumnsController.php
15521537

15531538
-
1554-
message: "#^Parameter \\#10 \\$colDefault of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:updateOneColumn\\(\\) expects string, mixed given\\.$#"
1555-
count: 2
1556-
path: src/Controllers/Database/CentralColumnsController.php
1557-
1558-
-
1559-
message: "#^Parameter \\#2 \\$origColName of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:updateOneColumn\\(\\) expects string, mixed given\\.$#"
1539+
message: "#^Parameter \\#2 \\$position of method PhpMyAdmin\\\\Controllers\\\\Database\\\\CentralColumnsController\\:\\:main\\(\\) expects string, mixed given\\.$#"
15601540
count: 1
15611541
path: src/Controllers/Database/CentralColumnsController.php
15621542

‎psalm-baseline.xml‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -917,11 +917,13 @@
917917
<code><![CDATA[$params['col_type']]]></code>
918918
<code><![CDATA[$params['collation']]]></code>
919919
<code><![CDATA[$params['collation']]]></code>
920-
<code><![CDATA[$params['cur_table'] ?? '']]></code>
921920
<code><![CDATA[$params['db']]]></code>
922921
<code><![CDATA[$params['db']]]></code>
923922
<code><![CDATA[$params['orig_col_name']]]></code>
924923
<code><![CDATA[$params['table-select']]]></code>
924+
<code><![CDATA[$request->getParsedBodyParam('cur_table', '')]]></code>
925+
<code><![CDATA[$request->getParsedBodyParam('pos', '')]]></code>
926+
<code><![CDATA[$request->getParsedBodyParam('total_rows', '')]]></code>
925927
</MixedArgument>
926928
<MixedArgumentTypeCoercion>
927929
<code>$variables</code>

‎src/Controllers/Database/CentralColumnsController.php‎

Lines changed: 25 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use PhpMyAdmin\Controllers\AbstractController;
1212
use PhpMyAdmin\Database\CentralColumns;
1313
use PhpMyAdmin\Http\ServerRequest;
14+
use PhpMyAdmin\Identifiers\DatabaseName;
1415
use PhpMyAdmin\Message;
1516
use PhpMyAdmin\ResponseRenderer;
1617
use PhpMyAdmin\Template;
@@ -35,6 +36,7 @@ public function __construct(
3536
public function __invoke(ServerRequest $request): void
3637
{
3738
$GLOBALS['message'] ??= null;
39+
$db = DatabaseName::from($request->getParam('db'));
3840

3941
if ($request->hasBodyParam('edit_save')) {
4042
$this->response->addHTML((string) $this->editSave([
@@ -48,7 +50,7 @@ public function __invoke(ServerRequest $request): void
4850
'col_attribute' => $request->getParsedBodyParam('col_attribute'),
4951
'col_type' => $request->getParsedBodyParam('col_type'),
5052
'collation' => $request->getParsedBodyParam('collation'),
51-
]));
53+
], $db));
5254

5355
return;
5456
}
@@ -64,13 +66,14 @@ public function __invoke(ServerRequest $request): void
6466
'col_attribute' => $request->getParsedBodyParam('col_attribute'),
6567
'col_type' => $request->getParsedBodyParam('col_type'),
6668
'collation' => $request->getParsedBodyParam('collation'),
67-
]);
69+
], $db);
6870
}
6971

7072
if ($request->hasBodyParam('getColumnList')) {
71-
$this->response->addJSON('message', $this->getColumnList([
72-
'cur_table' => $request->getParsedBodyParam('cur_table'),
73-
]));
73+
$this->response->addJSON('message', $this->centralColumns->getListRaw(
74+
$db->getName(),
75+
$request->getParsedBodyParam('cur_table', ''),
76+
));
7477

7578
return;
7679
}
@@ -124,18 +127,19 @@ public function __invoke(ServerRequest $request): void
124127
]);
125128
}
126129

127-
$this->main([
128-
'pos' => $request->getParsedBodyParam('pos'),
129-
'total_rows' => $request->getParsedBodyParam('total_rows'),
130-
]);
130+
$this->main(
131+
$request->getParsedBodyParam('pos', ''),
132+
$request->getParsedBodyParam('total_rows', ''),
133+
$db,
134+
);
131135

132136
$pos = 0;
133137
if (is_numeric($request->getParsedBodyParam('pos'))) {
134138
$pos = (int) $request->getParsedBodyParam('pos');
135139
}
136140

137141
$numberOfColumns = $this->centralColumns->getColumnsCount(
138-
$GLOBALS['db'],
142+
$db->getName(),
139143
$pos,
140144
Config::getInstance()->settings['MaxRows'],
141145
);
@@ -149,24 +153,23 @@ public function __invoke(ServerRequest $request): void
149153
$GLOBALS['message'] = $tmpMsg;
150154
}
151155

152-
/** @param mixed[] $params Request parameters */
153-
public function main(array $params): void
156+
public function main(string $totalRows, string $position, DatabaseName $db): void
154157
{
155158
$GLOBALS['text_dir'] ??= null;
156159

157-
if (! empty($params['total_rows']) && is_numeric($params['total_rows'])) {
158-
$totalRows = (int) $params['total_rows'];
160+
if ($totalRows !== '' && $totalRows !== '0' && is_numeric($totalRows)) {
161+
$totalRows = (int) $totalRows;
159162
} else {
160-
$totalRows = $this->centralColumns->getCount($GLOBALS['db']);
163+
$totalRows = $this->centralColumns->getCount($db->getName());
161164
}
162165

163166
$pos = 0;
164-
if (isset($params['pos']) && is_numeric($params['pos'])) {
165-
$pos = (int) $params['pos'];
167+
if (is_numeric($position)) {
168+
$pos = (int) $position;
166169
}
167170

168171
$variables = $this->centralColumns->getTemplateVariablesForMain(
169-
$GLOBALS['db'],
172+
$db->getName(),
170173
$totalRows,
171174
$pos,
172175
$GLOBALS['text_dir'],
@@ -175,30 +178,20 @@ public function main(array $params): void
175178
$this->render('database/central_columns/main', $variables);
176179
}
177180

178-
/**
179-
* @param mixed[] $params Request parameters
180-
*
181-
* @return mixed[] JSON
182-
*/
183-
public function getColumnList(array $params): array
184-
{
185-
return $this->centralColumns->getListRaw($GLOBALS['db'], $params['cur_table'] ?? '');
186-
}
187-
188181
/**
189182
* @param mixed[] $params Request parameters
190183
*
191184
* @return true|Message
192185
*/
193-
public function editSave(array $params): bool|Message
186+
public function editSave(array $params, DatabaseName $db): bool|Message
194187
{
195188
$columnDefault = $params['col_default'];
196189
if ($columnDefault === 'NONE' && $params['col_default_sel'] !== 'USER_DEFINED') {
197190
$columnDefault = '';
198191
}
199192

200193
return $this->centralColumns->updateOneColumn(
201-
$GLOBALS['db'],
194+
$db->getName(),
202195
$params['orig_col_name'],
203196
$params['col_name'],
204197
$params['col_type'],
@@ -216,15 +209,15 @@ public function editSave(array $params): bool|Message
216209
*
217210
* @return true|Message
218211
*/
219-
public function addNewColumn(array $params): bool|Message
212+
public function addNewColumn(array $params, DatabaseName $db): bool|Message
220213
{
221214
$columnDefault = $params['col_default'];
222215
if ($columnDefault === 'NONE' && $params['col_default_sel'] !== 'USER_DEFINED') {
223216
$columnDefault = '';
224217
}
225218

226219
return $this->centralColumns->updateOneColumn(
227-
$GLOBALS['db'],
220+
$db->getName(),
228221
'',
229222
$params['col_name'],
230223
$params['col_type'],

0 commit comments

Comments
 (0)