Skip to content

Commit f570bf6

Browse files
committed
Pass ServerRequest object to Indexes::doSaveData() method
This removes the need to call Application::getRequest(). Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
1 parent e8ebb66 commit f570bf6

File tree

5 files changed

+22
-19
lines changed

5 files changed

+22
-19
lines changed

libraries/classes/Controllers/Table/IndexRenameController.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public function __invoke(ServerRequest $request): void
8888
if (isset($_POST['do_save_data'])) {
8989
$oldIndexName = $request->getParsedBodyParam('old_index', '');
9090
$this->indexes->doSaveData(
91+
$request,
9192
$index,
9293
true,
9394
$GLOBALS['db'],

libraries/classes/Controllers/Table/IndexesController.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ public function __invoke(ServerRequest $request): void
9494

9595
if (isset($_POST['do_save_data'])) {
9696
$this->indexes->doSaveData(
97+
$request,
9798
$index,
9899
false,
99100
$GLOBALS['db'],

libraries/classes/Table/Indexes.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44

55
namespace PhpMyAdmin\Table;
66

7-
use PhpMyAdmin\Application;
87
use PhpMyAdmin\Controllers\Table\StructureController;
98
use PhpMyAdmin\Core;
109
use PhpMyAdmin\DatabaseInterface;
1110
use PhpMyAdmin\Html\Generator;
11+
use PhpMyAdmin\Http\ServerRequest;
1212
use PhpMyAdmin\Identifiers\DatabaseName;
1313
use PhpMyAdmin\Index;
1414
use PhpMyAdmin\Message;
@@ -37,6 +37,7 @@ public function __construct(
3737
* @param bool $renameMode Rename the Index mode
3838
*/
3939
public function doSaveData(
40+
ServerRequest $request,
4041
Index $index,
4142
bool $renameMode,
4243
string $db,
@@ -85,8 +86,7 @@ public function doSaveData(
8586
}
8687

8788
$this->dbi->query($sqlQuery);
88-
$response = ResponseRenderer::getInstance();
89-
if ($response->isAjax()) {
89+
if ($request->isAjax()) {
9090
$message = Message::success(
9191
__('Table %1$s has been altered successfully.'),
9292
);
@@ -113,7 +113,7 @@ public function doSaveData(
113113

114114
/** @var StructureController $controller */
115115
$controller = Core::getContainerBuilder()->get(StructureController::class);
116-
$controller(Application::getRequest());
116+
$controller($request);
117117
}
118118

119119
public function executeAddIndexSql(string|DatabaseName $db, string $sql): Message

phpstan-baseline.neon

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7761,17 +7761,17 @@ parameters:
77617761
path: libraries/classes/Controllers/Table/IndexRenameController.php
77627762

77637763
-
7764-
message: "#^Parameter \\#3 \\$db of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:doSaveData\\(\\) expects string, mixed given\\.$#"
7764+
message: "#^Parameter \\#4 \\$db of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:doSaveData\\(\\) expects string, mixed given\\.$#"
77657765
count: 1
77667766
path: libraries/classes/Controllers/Table/IndexRenameController.php
77677767

77687768
-
7769-
message: "#^Parameter \\#4 \\$table of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:doSaveData\\(\\) expects string, mixed given\\.$#"
7769+
message: "#^Parameter \\#5 \\$table of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:doSaveData\\(\\) expects string, mixed given\\.$#"
77707770
count: 1
77717771
path: libraries/classes/Controllers/Table/IndexRenameController.php
77727772

77737773
-
7774-
message: "#^Parameter \\#6 \\$oldIndexName of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:doSaveData\\(\\) expects string, mixed given\\.$#"
7774+
message: "#^Parameter \\#7 \\$oldIndexName of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:doSaveData\\(\\) expects string, mixed given\\.$#"
77757775
count: 1
77767776
path: libraries/classes/Controllers/Table/IndexRenameController.php
77777777

@@ -7836,12 +7836,12 @@ parameters:
78367836
path: libraries/classes/Controllers/Table/IndexesController.php
78377837

78387838
-
7839-
message: "#^Parameter \\#3 \\$db of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:doSaveData\\(\\) expects string, mixed given\\.$#"
7839+
message: "#^Parameter \\#4 \\$db of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:doSaveData\\(\\) expects string, mixed given\\.$#"
78407840
count: 1
78417841
path: libraries/classes/Controllers/Table/IndexesController.php
78427842

78437843
-
7844-
message: "#^Parameter \\#4 \\$table of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:doSaveData\\(\\) expects string, mixed given\\.$#"
7844+
message: "#^Parameter \\#5 \\$table of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:doSaveData\\(\\) expects string, mixed given\\.$#"
78457845
count: 1
78467846
path: libraries/classes/Controllers/Table/IndexesController.php
78477847

@@ -32226,17 +32226,17 @@ parameters:
3222632226
path: test/classes/Table/IndexesTest.php
3222732227

3222832228
-
32229-
message: "#^Parameter \\#3 \\$db of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:doSaveData\\(\\) expects string, mixed given\\.$#"
32230-
count: 2
32229+
message: "#^Parameter \\#3 \\$dbi of class PhpMyAdmin\\\\Table\\\\Indexes constructor expects PhpMyAdmin\\\\DatabaseInterface, mixed given\\.$#"
32230+
count: 1
3223132231
path: test/classes/Table/IndexesTest.php
3223232232

3223332233
-
32234-
message: "#^Parameter \\#3 \\$dbi of class PhpMyAdmin\\\\Table\\\\Indexes constructor expects PhpMyAdmin\\\\DatabaseInterface, mixed given\\.$#"
32235-
count: 1
32234+
message: "#^Parameter \\#4 \\$db of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:doSaveData\\(\\) expects string, mixed given\\.$#"
32235+
count: 2
3223632236
path: test/classes/Table/IndexesTest.php
3223732237

3223832238
-
32239-
message: "#^Parameter \\#4 \\$table of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:doSaveData\\(\\) expects string, mixed given\\.$#"
32239+
message: "#^Parameter \\#5 \\$table of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:doSaveData\\(\\) expects string, mixed given\\.$#"
3224032240
count: 2
3224132241
path: test/classes/Table/IndexesTest.php
3224232242

test/classes/Table/IndexesTest.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
namespace PhpMyAdmin\Tests\Table;
66

77
use PhpMyAdmin\DatabaseInterface;
8+
use PhpMyAdmin\Http\Factory\ServerRequestFactory;
89
use PhpMyAdmin\Index;
9-
use PhpMyAdmin\ResponseRenderer;
1010
use PhpMyAdmin\Table;
1111
use PhpMyAdmin\Table\Indexes;
1212
use PhpMyAdmin\Template;
@@ -70,19 +70,20 @@ public function testDoSaveData(): void
7070

7171
$indexes = new Indexes($response, new Template(), $GLOBALS['dbi']);
7272

73+
$request = ServerRequestFactory::create()->createServerRequest('GET', 'http://example.com/')
74+
->withQueryParams(['ajax_request' => '1']);
75+
7376
// Preview SQL
74-
$indexes->doSaveData($index, false, $GLOBALS['db'], $GLOBALS['table'], true);
77+
$indexes->doSaveData($request, $index, false, $GLOBALS['db'], $GLOBALS['table'], true);
7578
$jsonArray = $response->getJSONResult();
7679
$this->assertArrayHasKey('sql_data', $jsonArray);
7780
$this->assertStringContainsString($sqlQuery, $jsonArray['sql_data']);
7881

7982
// Alter success
8083
$response->clear();
81-
ResponseRenderer::getInstance()->setAjax(true);
82-
$indexes->doSaveData($index, false, $GLOBALS['db'], $GLOBALS['table'], false);
84+
$indexes->doSaveData($request, $index, false, $GLOBALS['db'], $GLOBALS['table'], false);
8385
$jsonArray = $response->getJSONResult();
8486
$this->assertArrayHasKey('index_table', $jsonArray);
8587
$this->assertArrayHasKey('message', $jsonArray);
86-
ResponseRenderer::getInstance()->setAjax(false);
8788
}
8889
}

0 commit comments

Comments
 (0)