Merge pull request #17871 from kamil-tekiela/Remove-$params

Remove $params array
This commit is contained in:
Maurício Meneghini Fauth 2022-11-05 22:09:51 -03:00 committed by GitHub
commit 05346e5eb8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 57 additions and 124 deletions

View File

@ -12,11 +12,9 @@ final class QueryController extends AbstractController
{
public function __invoke(ServerRequest $request): void
{
$params = [
'sql_query' => $request->getParsedBodyParam('sql_query'),
'db' => $request->getParam('db'),
];
$this->response->addHTML(MultiTableQuery::displayResults($params['sql_query'], $params['db']));
$this->response->addHTML(MultiTableQuery::displayResults(
$request->getParsedBodyParam('sql_query'),
$request->getParam('db')
));
}
}

View File

@ -26,13 +26,13 @@ final class TablesController extends AbstractController
public function __invoke(ServerRequest $request): void
{
$params = [
'tables' => $request->getQueryParam('tables', []),
'db' => $request->getQueryParam('db', ''),
];
/** @var string[] $tables */
$tables = $request->getQueryParam('tables', []);
/** @var string $db */
$db = $request->getQueryParam('db', '');
$tablesListForQuery = '';
foreach ($params['tables'] as $table) {
foreach ($tables as $table) {
$tablesListForQuery .= "'" . $this->dbi->escapeString($table) . "',";
}
@ -40,7 +40,7 @@ final class TablesController extends AbstractController
$constrains = $this->dbi->fetchResult(
QueryGenerator::getInformationSchemaForeignKeyConstraintsRequest(
$this->dbi->escapeString($params['db']),
$this->dbi->escapeString($db),
$tablesListForQuery
)
);

View File

@ -8,8 +8,6 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\SqlParser\Utils\Formatter;
use function strlen;
/**
* Format SQL for SQL editors.
*/
@ -17,8 +15,8 @@ class SqlFormatController extends AbstractController
{
public function __invoke(ServerRequest $request): void
{
$params = ['sql' => $request->getParsedBodyParam('sql')];
$query = strlen((string) $params['sql']) > 0 ? $params['sql'] : '';
/** @var string $query */
$query = $request->getParsedBodyParam('sql', '');
$this->response->addJSON(['sql' => Formatter::format($query)]);
}
}

View File

@ -12,6 +12,7 @@ use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Linter;
use function header;
use function is_array;
use function json_encode;
use function sprintf;
@ -22,11 +23,6 @@ class LintController extends AbstractController
{
public function __invoke(ServerRequest $request): void
{
$params = [
'sql_query' => $request->getParsedBodyParam('sql_query'),
'options' => $request->getParsedBodyParam('options'),
];
/**
* The SQL query to be analyzed.
*
@ -38,7 +34,7 @@ class LintController extends AbstractController
*
* @var string
*/
$sqlQuery = ! empty($params['sql_query']) ? $params['sql_query'] : '';
$sqlQuery = $request->getParsedBodyParam('sql_query', '');
$this->response->setAjax(true);
@ -49,9 +45,8 @@ class LintController extends AbstractController
header(sprintf('%s: %s', $name, $value));
}
if (! empty($params['options'])) {
$options = $params['options'];
$options = $request->getParsedBodyParam('options');
if (is_array($options)) {
if (! empty($options['routineEditor'])) {
$sqlQuery = 'CREATE PROCEDURE `a`() ' . $sqlQuery;
} elseif (! empty($options['triggerEditor'])) {

View File

@ -18,7 +18,7 @@ use PhpMyAdmin\Util;
use function __;
use function array_key_exists;
use function explode;
use function mb_strlen;
use function is_string;
use function mb_strtolower;
use function str_contains;
@ -35,12 +35,10 @@ final class CreateController extends AbstractController
public function __invoke(ServerRequest $request): void
{
$params = [
'new_db' => $_POST['new_db'] ?? null,
'db_collation' => $_POST['db_collation'] ?? null,
];
$newDb = $request->getParsedBodyParam('new_db');
$dbCollation = $request->getParsedBodyParam('db_collation');
if (! isset($params['new_db']) || mb_strlen($params['new_db']) === 0 || ! $this->response->isAjax()) {
if (! is_string($newDb) || $newDb === '' || ! $this->response->isAjax()) {
$this->response->addJSON(['message' => Message::error()]);
return;
@ -48,23 +46,23 @@ final class CreateController extends AbstractController
// lower_case_table_names=1 `DB` becomes `db`
if ($this->dbi->getLowerCaseNames() === '1') {
$params['new_db'] = mb_strtolower($params['new_db']);
$newDb = mb_strtolower($newDb);
}
/**
* Builds and executes the db creation sql query
*/
$sqlQuery = 'CREATE DATABASE ' . Util::backquote($params['new_db']);
if (! empty($params['db_collation'])) {
[$databaseCharset] = explode('_', $params['db_collation']);
$sqlQuery = 'CREATE DATABASE ' . Util::backquote($newDb);
if (is_string($dbCollation) && $dbCollation !== '') {
[$databaseCharset] = explode('_', $dbCollation);
$charsets = Charsets::getCharsets($this->dbi, $GLOBALS['cfg']['Server']['DisableIS']);
$collations = Charsets::getCollations($this->dbi, $GLOBALS['cfg']['Server']['DisableIS']);
if (
array_key_exists($databaseCharset, $charsets)
&& array_key_exists($params['db_collation'], $collations[$databaseCharset])
&& array_key_exists($dbCollation, $collations[$databaseCharset])
) {
$sqlQuery .= ' DEFAULT'
. Util::getCharsetQueryPart($params['db_collation']);
. Util::getCharsetQueryPart($dbCollation);
}
}
@ -81,10 +79,10 @@ final class CreateController extends AbstractController
$this->response->setRequestStatus(false);
} else {
$GLOBALS['db'] = $params['new_db'];
$GLOBALS['db'] = $newDb;
$message = Message::success(__('Database %1$s has been created.'));
$message->addParam($params['new_db']);
$message->addParam($newDb);
$scriptName = Util::getScriptNameForOption($GLOBALS['cfg']['DefaultTabDatabase'], 'database');
@ -92,7 +90,7 @@ final class CreateController extends AbstractController
'message' => $message,
'sql_query' => Generator::getMessage('', $sqlQuery, 'success'),
'url' => $scriptName . Url::getCommon(
['db' => $params['new_db']],
['db' => $newDb],
! str_contains($scriptName, '?') ? '?' : '&'
),
];

View File

@ -37,16 +37,13 @@ class VariablesController extends AbstractController
public function __invoke(ServerRequest $request): void
{
$GLOBALS['errorUrl'] = $GLOBALS['errorUrl'] ?? null;
$params = ['filter' => $_GET['filter'] ?? null];
$GLOBALS['errorUrl'] = Url::getFromRoute('/');
if ($this->dbi->isSuperUser()) {
$this->dbi->selectDb('mysql');
}
$filterValue = ! empty($params['filter']) ? $params['filter'] : '';
$filterValue = $request->getQueryParam('filter', '');
$this->addScriptFiles(['server/variables.js']);

View File

@ -1045,16 +1045,6 @@ parameters:
count: 1
path: libraries/classes/Controllers/Database/MultiTableQuery/QueryController.php
-
message: "#^Argument of an invalid type mixed supplied for foreach, only iterables are supported\\.$#"
count: 1
path: libraries/classes/Controllers/Database/MultiTableQuery/TablesController.php
-
message: "#^Parameter \\#1 \\$str of method PhpMyAdmin\\\\DatabaseInterface\\:\\:escapeString\\(\\) expects string, mixed given\\.$#"
count: 2
path: libraries/classes/Controllers/Database/MultiTableQuery/TablesController.php
-
message: "#^Parameter \\#1 \\$collation of static method PhpMyAdmin\\\\Util\\:\\:getCharsetQueryPart\\(\\) expects string, mixed given\\.$#"
count: 2
@ -1090,16 +1080,6 @@ parameters:
count: 1
path: libraries/classes/Controllers/Database/SqlController.php
-
message: "#^Cannot cast mixed to string\\.$#"
count: 1
path: libraries/classes/Controllers/Database/SqlFormatController.php
-
message: "#^Parameter \\#1 \\$query of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Formatter\\:\\:format\\(\\) expects string, mixed given\\.$#"
count: 1
path: libraries/classes/Controllers/Database/SqlFormatController.php
-
message: "#^Cannot access offset int\\<0, max\\> on mixed\\.$#"
count: 1
@ -1365,21 +1345,6 @@ parameters:
count: 1
path: libraries/classes/Controllers/HomeController.php
-
message: "#^Cannot access offset 'eventEditor' on mixed\\.$#"
count: 1
path: libraries/classes/Controllers/LintController.php
-
message: "#^Cannot access offset 'routineEditor' on mixed\\.$#"
count: 1
path: libraries/classes/Controllers/LintController.php
-
message: "#^Cannot access offset 'triggerEditor' on mixed\\.$#"
count: 1
path: libraries/classes/Controllers/LintController.php
-
message: "#^Parameter \\#1 \\$partialDependencies of method PhpMyAdmin\\\\Normalization\\:\\:createNewTablesFor2NF\\(\\) expects array, mixed given\\.$#"
count: 1

View File

@ -1219,19 +1219,10 @@
</file>
<file src="libraries/classes/Controllers/Database/MultiTableQuery/QueryController.php">
<MixedArgument occurrences="2">
<code>$params['db']</code>
<code>$params['sql_query']</code>
<code>$request-&gt;getParam('db')</code>
<code>$request-&gt;getParsedBodyParam('sql_query')</code>
</MixedArgument>
</file>
<file src="libraries/classes/Controllers/Database/MultiTableQuery/TablesController.php">
<MixedArgument occurrences="2">
<code>$params['db']</code>
<code>$table</code>
</MixedArgument>
<MixedAssignment occurrences="1">
<code>$table</code>
</MixedAssignment>
</file>
<file src="libraries/classes/Controllers/Database/Operations/CollationController.php">
<MixedArgument occurrences="2">
<code>$dbCollation</code>
@ -1387,14 +1378,6 @@
<code>$delimiter</code>
</MixedAssignment>
</file>
<file src="libraries/classes/Controllers/Database/SqlFormatController.php">
<MixedArgument occurrences="1">
<code>$query</code>
</MixedArgument>
<MixedAssignment occurrences="1">
<code>$query</code>
</MixedAssignment>
</file>
<file src="libraries/classes/Controllers/Database/Structure/AddPrefixController.php">
<MixedAssignment occurrences="2">
<code>$params['selected'][]</code>
@ -2571,23 +2554,9 @@
</RiskyCast>
</file>
<file src="libraries/classes/Controllers/Server/Databases/CreateController.php">
<InvalidArgument occurrences="1">
<code>['db' =&gt; $params['new_db']]</code>
</InvalidArgument>
<PossiblyInvalidArgument occurrences="6">
<code>$params['db_collation']</code>
<code>$params['db_collation']</code>
<code>$params['db_collation']</code>
<code>$params['new_db']</code>
<code>$params['new_db']</code>
<code>$params['new_db']</code>
</PossiblyInvalidArgument>
<PossiblyInvalidCast occurrences="4">
<code>$params['db_collation']</code>
<code>$params['db_collation']</code>
<code>$params['new_db']</code>
<code>$params['new_db']</code>
</PossiblyInvalidCast>
<MixedAssignment occurrences="1">
<code>$dbCollation</code>
</MixedAssignment>
</file>
<file src="libraries/classes/Controllers/Server/Databases/DestroyController.php">
<InvalidArrayOffset occurrences="1">
@ -3042,7 +3011,7 @@
<code>$serverVarsSession[$name]</code>
</MixedArrayTypeCoercion>
<MixedAssignment occurrences="2">
<code>$GLOBALS['errorUrl']</code>
<code>$filterValue</code>
<code>$value</code>
</MixedAssignment>
</file>

View File

@ -26,7 +26,13 @@ class LintControllerTest extends AbstractTestCase
public function testWithoutParams(): void
{
$this->getLintController()($this->createStub(ServerRequest::class));
$request = $this->createStub(ServerRequest::class);
$request->method('getParsedBodyParam')->willReturnMap([
['sql_query', '', ''],
['options', null, null],
]);
$this->getLintController()($request);
$output = $this->getActualOutputForAssertion();
$this->assertJson($output);
@ -37,7 +43,7 @@ class LintControllerTest extends AbstractTestCase
{
$request = $this->createStub(ServerRequest::class);
$request->method('getParsedBodyParam')->willReturnMap([
['sql_query', null, 'SELECT * FROM `actor` WHERE `actor_id` = 1;'],
['sql_query', '', 'SELECT * FROM `actor` WHERE `actor_id` = 1;'],
['options', null, null],
]);
@ -88,7 +94,7 @@ class LintControllerTest extends AbstractTestCase
$request = $this->createStub(ServerRequest::class);
$request->method('getParsedBodyParam')->willReturnMap([
['sql_query', null, 'SELECT * FROM `actor` WHEREE `actor_id` = 1;'],
['sql_query', '', 'SELECT * FROM `actor` WHEREE `actor_id` = 1;'],
['options', null, null],
]);

View File

@ -49,9 +49,13 @@ final class CreateControllerTest extends AbstractTestCase
$template = new Template();
$controller = new CreateController($response, $template, $this->dbi);
$_POST['new_db'] = 'test_db_error';
$request = $this->createStub(ServerRequest::class);
$request->method('getParsedBodyParam')->willReturnMap([
['new_db', null, 'test_db_error'],
['db_collation', null, null],
]);
$controller($this->createStub(ServerRequest::class));
$controller($request);
$actual = $response->getJSONResult();
$this->assertArrayHasKey('message', $actual);
@ -62,10 +66,13 @@ final class CreateControllerTest extends AbstractTestCase
$controller = new CreateController($response, $template, $this->dbi);
$_POST['new_db'] = 'test_db';
$_POST['db_collation'] = 'utf8_general_ci';
$request = $this->createStub(ServerRequest::class);
$request->method('getParsedBodyParam')->willReturnMap([
['new_db', null, 'test_db'],
['db_collation', null, 'utf8_general_ci'],
]);
$controller($this->createStub(ServerRequest::class));
$controller($request);
$actual = $response->getJSONResult();
$this->assertArrayHasKey('message', $actual);