';
@@ -248,7 +249,7 @@ final class EventsController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $message);
- return;
+ return null;
}
$this->response->addHTML($message->getDisplay());
@@ -265,5 +266,7 @@ final class EventsController extends AbstractController
'text_dir' => LanguageManager::$textDir,
'is_ajax' => $request->isAjax() && empty($_REQUEST['ajax_page_request']),
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/ExportController.php b/src/Controllers/Database/ExportController.php
index 0271a46671..d459a78f8b 100644
--- a/src/Controllers/Database/ExportController.php
+++ b/src/Controllers/Database/ExportController.php
@@ -11,6 +11,7 @@ use PhpMyAdmin\Current;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Export\Export;
use PhpMyAdmin\Export\Options;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Message;
@@ -38,7 +39,7 @@ final class ExportController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['urlParams'] ??= null;
$GLOBALS['table_select'] ??= null;
@@ -52,7 +53,7 @@ final class ExportController extends AbstractController
$this->addScriptFiles(['export.js']);
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$GLOBALS['errorUrl'] = Util::getScriptNameForOption(
@@ -67,12 +68,12 @@ final class ExportController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$GLOBALS['urlParams']['goto'] = Url::getFromRoute('/database/export');
@@ -86,7 +87,7 @@ final class ExportController extends AbstractController
Message::error(__('No tables found in database.'))->getDisplay(),
);
- return;
+ return null;
}
$selectedTable = $request->getParsedBodyParam('selected_tbl');
@@ -152,7 +153,7 @@ final class ExportController extends AbstractController
__('Could not load export plugins, please check your installation!'),
)->getDisplay());
- return;
+ return null;
}
$options = $this->exportOptions->getOptions(
@@ -171,5 +172,7 @@ final class ExportController extends AbstractController
'structure_or_data_forced' => $request->getParsedBodyParam('structure_or_data_forced', 0),
'tables' => $tablesForMultiValues,
]));
+
+ return null;
}
}
diff --git a/src/Controllers/Database/ImportController.php b/src/Controllers/Database/ImportController.php
index 6ed70d5c9a..348213c1ce 100644
--- a/src/Controllers/Database/ImportController.php
+++ b/src/Controllers/Database/ImportController.php
@@ -12,6 +12,7 @@ use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Encoding;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Import\Ajax;
@@ -40,7 +41,7 @@ final class ImportController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['SESSION_KEY'] ??= null;
$GLOBALS['errorUrl'] ??= null;
@@ -52,7 +53,7 @@ final class ImportController extends AbstractController
$this->addScriptFiles(['import.js']);
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$config = Config::getInstance();
@@ -65,12 +66,12 @@ final class ImportController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
[$GLOBALS['SESSION_KEY'], $uploadId] = Ajax::uploadProgressSetup();
@@ -83,7 +84,7 @@ final class ImportController extends AbstractController
'Could not load import plugins, please check your installation!',
))->getDisplay());
- return;
+ return null;
}
$offset = null;
@@ -139,5 +140,7 @@ final class ImportController extends AbstractController
'user_upload_dir' => Util::userDir($config->settings['UploadDir'] ?? ''),
'local_files' => Import::getLocalFiles($importList),
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/MultiTableQuery/QueryController.php b/src/Controllers/Database/MultiTableQuery/QueryController.php
index 49723fe545..5ee51658af 100644
--- a/src/Controllers/Database/MultiTableQuery/QueryController.php
+++ b/src/Controllers/Database/MultiTableQuery/QueryController.php
@@ -6,15 +6,18 @@ namespace PhpMyAdmin\Controllers\Database\MultiTableQuery;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Database\MultiTableQuery;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
final class QueryController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->response->addHTML(MultiTableQuery::displayResults(
$request->getParsedBodyParam('sql_query'),
$request->getParam('db'),
));
+
+ return null;
}
}
diff --git a/src/Controllers/Database/MultiTableQuery/TablesController.php b/src/Controllers/Database/MultiTableQuery/TablesController.php
index 4437912e69..8b26aebb5a 100644
--- a/src/Controllers/Database/MultiTableQuery/TablesController.php
+++ b/src/Controllers/Database/MultiTableQuery/TablesController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Database\MultiTableQuery;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Query\Generator as QueryGenerator;
use PhpMyAdmin\ResponseRenderer;
@@ -21,7 +22,7 @@ final class TablesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string[] $tables */
$tables = $request->getQueryParam('tables', []);
@@ -37,5 +38,7 @@ final class TablesController extends AbstractController
),
);
$this->response->addJSON(['foreignKeyConstrains' => $constrains]);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/MultiTableQueryController.php b/src/Controllers/Database/MultiTableQueryController.php
index bdee507ccd..c8024f4dcd 100644
--- a/src/Controllers/Database/MultiTableQueryController.php
+++ b/src/Controllers/Database/MultiTableQueryController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\Database\MultiTableQuery;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -22,12 +23,14 @@ class MultiTableQueryController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->addScriptFiles(['database/multi_table_query.js', 'database/query_generator.js']);
$queryInstance = new MultiTableQuery($this->dbi, $this->template, Current::$database);
$this->response->addHTML($queryInstance->getFormHtml());
+
+ return null;
}
}
diff --git a/src/Controllers/Database/PrivilegesController.php b/src/Controllers/Database/PrivilegesController.php
index 8541b2d3d0..36dab1dd75 100644
--- a/src/Controllers/Database/PrivilegesController.php
+++ b/src/Controllers/Database/PrivilegesController.php
@@ -10,6 +10,7 @@ namespace PhpMyAdmin\Controllers\Database;
use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidDatabaseName;
@@ -37,7 +38,7 @@ class PrivilegesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
try {
$db = DatabaseName::from($request->getParam('db'));
@@ -47,7 +48,7 @@ class PrivilegesController extends AbstractController
} catch (InvalidDatabaseName $exception) {
$this->response->addHTML(Message::error($exception->getMessage())->getDisplay());
- return;
+ return null;
}
$this->addScriptFiles(['server/privileges.js', 'vendor/zxcvbn-ts.js']);
@@ -65,7 +66,7 @@ class PrivilegesController extends AbstractController
->getDisplay(),
);
- return;
+ return null;
}
if (! $isGrantUser && ! $isCreateUser) {
@@ -91,5 +92,7 @@ class PrivilegesController extends AbstractController
'privileges' => $privileges,
]);
$this->render('export_modal');
+
+ return null;
}
}
diff --git a/src/Controllers/Database/RoutinesController.php b/src/Controllers/Database/RoutinesController.php
index f13b2efb35..844fd94de5 100644
--- a/src/Controllers/Database/RoutinesController.php
+++ b/src/Controllers/Database/RoutinesController.php
@@ -11,6 +11,7 @@ use PhpMyAdmin\Current;
use PhpMyAdmin\Database\Routines;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -47,7 +48,7 @@ class RoutinesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errors'] ??= null;
$GLOBALS['errorUrl'] ??= null;
@@ -66,7 +67,7 @@ class RoutinesController extends AbstractController
*/
if (Current::$table !== '' && in_array(Current::$table, $this->dbi->getTables(Current::$database), true)) {
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$GLOBALS['urlParams'] = ['db' => Current::$database, 'table' => Current::$table];
@@ -77,20 +78,20 @@ class RoutinesController extends AbstractController
if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) {
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) {
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
} else {
Current::$table = '';
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$GLOBALS['errorUrl'] = Util::getScriptNameForOption(
@@ -103,7 +104,7 @@ class RoutinesController extends AbstractController
if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) {
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
}
} elseif (Current::$database !== '') {
@@ -124,7 +125,7 @@ class RoutinesController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $output);
- return;
+ return null;
}
$routines = Routines::getDetails(
@@ -148,7 +149,7 @@ class RoutinesController extends AbstractController
$this->response->addJSON('message', $output);
$this->response->addJSON('tableType', 'routines');
- return;
+ return null;
}
}
@@ -276,12 +277,12 @@ class RoutinesController extends AbstractController
);
$this->response->addJSON('type', $routine['item_type']);
- return;
+ return null;
}
$this->response->addHTML("\n\n
" . $title . "
\n\n" . $editor);
- return;
+ return null;
}
$message = __('Error in processing request:') . ' ';
@@ -301,7 +302,7 @@ class RoutinesController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $message);
- return;
+ return null;
}
$this->response->addHTML($message->getDisplay());
@@ -325,12 +326,12 @@ class RoutinesController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $message);
- return;
+ return null;
}
$this->response->addHTML($message->getDisplay());
- return;
+ return null;
}
[$output, $message] = $this->routines->handleExecuteRoutine($routine);
@@ -341,14 +342,14 @@ class RoutinesController extends AbstractController
$this->response->addJSON('message', $message->getDisplay() . $output);
$this->response->addJSON('dialog', false);
- return;
+ return null;
}
$this->response->addHTML($message->getDisplay() . $output);
if ($message->isError()) {
// At least one query has failed, so shouldn't
// execute any more queries, so we quit.
- return;
+ return null;
}
} elseif (! empty($_GET['execute_dialog']) && ! empty($_GET['item_name'])) {
/**
@@ -372,13 +373,13 @@ class RoutinesController extends AbstractController
$this->response->addJSON('title', $title);
$this->response->addJSON('dialog', true);
- return;
+ return null;
}
$this->response->addHTML("\n\n
" . __('Execute routine') . "
\n\n");
$this->response->addHTML($form);
- return;
+ return null;
}
if ($request->isAjax()) {
@@ -393,7 +394,7 @@ class RoutinesController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $message);
- return;
+ return null;
}
}
@@ -433,7 +434,7 @@ class RoutinesController extends AbstractController
$this->response->addJSON('message', $exportData);
$this->response->addJSON('title', $title);
- return;
+ return null;
}
$output = '
';
@@ -458,7 +459,7 @@ class RoutinesController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $message);
- return;
+ return null;
}
$this->response->addHTML($message->getDisplay());
@@ -487,5 +488,7 @@ class RoutinesController extends AbstractController
'rows' => $rows,
'has_privilege' => Util::currentUserHasPrivilege('CREATE ROUTINE', Current::$database, Current::$table),
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/SearchController.php b/src/Controllers/Database/SearchController.php
index 7b37b9821f..110250c5e5 100644
--- a/src/Controllers/Database/SearchController.php
+++ b/src/Controllers/Database/SearchController.php
@@ -11,6 +11,7 @@ use PhpMyAdmin\Database\Search;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Html\MySQLDocumentation;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Message;
@@ -32,7 +33,7 @@ class SearchController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
$GLOBALS['urlParams'] ??= null;
@@ -40,7 +41,7 @@ class SearchController extends AbstractController
$this->addScriptFiles(['database/search.js', 'sql.js', 'makegrid.js']);
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$config = Config::getInstance();
@@ -53,12 +54,12 @@ class SearchController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
if (! $config->settings['UseDbSearch']) {
@@ -70,12 +71,12 @@ class SearchController extends AbstractController
if ($request->isAjax()) {
$this->response->addJSON('message', Message::error($errorMessage)->getDisplay());
- return;
+ return null;
}
$this->render('error/simple', ['error_message' => $errorMessage, 'back_url' => $GLOBALS['errorUrl']]);
- return;
+ return null;
}
$GLOBALS['urlParams']['goto'] = Url::getFromRoute('/database/search');
@@ -90,10 +91,12 @@ class SearchController extends AbstractController
// If we are in an Ajax request, we need to exit after displaying all the HTML
if ($request->isAjax() && empty($_REQUEST['ajax_page_request'])) {
- return;
+ return null;
}
// Display the search form
$this->response->addHTML($databaseSearch->getMainHtml());
+
+ return null;
}
}
diff --git a/src/Controllers/Database/SqlAutoCompleteController.php b/src/Controllers/Database/SqlAutoCompleteController.php
index de860c6403..87034c4a38 100644
--- a/src/Controllers/Database/SqlAutoCompleteController.php
+++ b/src/Controllers/Database/SqlAutoCompleteController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Database;
use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\ResponseRenderer;
@@ -28,7 +29,7 @@ class SqlAutoCompleteController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$sqlAutocomplete = [];
if ($this->config->settings['EnableAutocompleteForTablesAndColumns']) {
@@ -39,6 +40,8 @@ class SqlAutoCompleteController extends AbstractController
}
$this->response->addJSON(['tables' => $sqlAutocomplete]);
+
+ return null;
}
/** @return string[][][] */
diff --git a/src/Controllers/Database/SqlController.php b/src/Controllers/Database/SqlController.php
index 971416f152..d5111991f0 100644
--- a/src/Controllers/Database/SqlController.php
+++ b/src/Controllers/Database/SqlController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\Config\PageSettings;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DbTableExists;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Message;
@@ -36,7 +37,7 @@ class SqlController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['goto'] ??= null;
$GLOBALS['back'] ??= null;
@@ -49,7 +50,7 @@ class SqlController extends AbstractController
$this->response->addHTML($this->pageSettings->getHTML());
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$GLOBALS['errorUrl'] = Util::getScriptNameForOption(
@@ -64,12 +65,12 @@ class SqlController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
/**
@@ -87,5 +88,7 @@ class SqlController extends AbstractController
false,
htmlspecialchars($delimiter),
));
+
+ return null;
}
}
diff --git a/src/Controllers/Database/SqlFormatController.php b/src/Controllers/Database/SqlFormatController.php
index 1aadaf6cda..4916bd370b 100644
--- a/src/Controllers/Database/SqlFormatController.php
+++ b/src/Controllers/Database/SqlFormatController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Database;
use PhpMyAdmin\Controllers\AbstractController;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\SqlParser\Utils\Formatter;
@@ -13,10 +14,12 @@ use PhpMyAdmin\SqlParser\Utils\Formatter;
*/
class SqlFormatController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string $query */
$query = $request->getParsedBodyParam('sql', '');
$this->response->addJSON(['sql' => Formatter::format($query)]);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/AddPrefixController.php b/src/Controllers/Database/Structure/AddPrefixController.php
index 538ff2c79d..b5675d0921 100644
--- a/src/Controllers/Database/Structure/AddPrefixController.php
+++ b/src/Controllers/Database/Structure/AddPrefixController.php
@@ -6,13 +6,14 @@ namespace PhpMyAdmin\Controllers\Database\Structure;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use function __;
final class AddPrefixController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string[] $selected */
$selected = $request->getParsedBodyParam('selected_tbl', []);
@@ -21,7 +22,7 @@ final class AddPrefixController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
$params = ['db' => Current::$database];
@@ -31,5 +32,7 @@ final class AddPrefixController extends AbstractController
$this->response->disable();
$this->render('database/structure/add_prefix', ['url_params' => $params]);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/AddPrefixTableController.php b/src/Controllers/Database/Structure/AddPrefixTableController.php
index 63f37d217a..230713117c 100644
--- a/src/Controllers/Database/Structure/AddPrefixTableController.php
+++ b/src/Controllers/Database/Structure/AddPrefixTableController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Controllers\Database\StructureController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -25,7 +26,7 @@ final class AddPrefixTableController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string[] $selected */
$selected = $request->getParsedBodyParam('selected', []);
@@ -45,5 +46,7 @@ final class AddPrefixTableController extends AbstractController
$GLOBALS['message'] = Message::success();
($this->structureController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/CentralColumns/AddController.php b/src/Controllers/Database/Structure/CentralColumns/AddController.php
index 56199bc554..bd407f42be 100644
--- a/src/Controllers/Database/Structure/CentralColumns/AddController.php
+++ b/src/Controllers/Database/Structure/CentralColumns/AddController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Controllers\Database\StructureController;
use PhpMyAdmin\Database\CentralColumns;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Message;
@@ -29,7 +30,7 @@ final class AddController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['message'] ??= null;
@@ -39,7 +40,7 @@ final class AddController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
Assert::allString($selected);
@@ -52,5 +53,7 @@ final class AddController extends AbstractController
unset($_POST['submit_mult']);
($this->structureController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/CentralColumns/MakeConsistentController.php b/src/Controllers/Database/Structure/CentralColumns/MakeConsistentController.php
index f81077488c..420854d727 100644
--- a/src/Controllers/Database/Structure/CentralColumns/MakeConsistentController.php
+++ b/src/Controllers/Database/Structure/CentralColumns/MakeConsistentController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\Controllers\Database\StructureController;
use PhpMyAdmin\Current;
use PhpMyAdmin\Database\CentralColumns;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -29,7 +30,7 @@ final class MakeConsistentController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['message'] ??= null;
@@ -39,7 +40,7 @@ final class MakeConsistentController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
Assert::allString($selected);
@@ -52,5 +53,7 @@ final class MakeConsistentController extends AbstractController
unset($_POST['submit_mult']);
($this->structureController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/CentralColumns/RemoveController.php b/src/Controllers/Database/Structure/CentralColumns/RemoveController.php
index 35fd71fe7f..b101c660f3 100644
--- a/src/Controllers/Database/Structure/CentralColumns/RemoveController.php
+++ b/src/Controllers/Database/Structure/CentralColumns/RemoveController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Controllers\Database\StructureController;
use PhpMyAdmin\Database\CentralColumns;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -28,7 +29,7 @@ final class RemoveController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['message'] ??= null;
@@ -38,7 +39,7 @@ final class RemoveController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
Assert::allString($selected);
@@ -51,5 +52,7 @@ final class RemoveController extends AbstractController
unset($_POST['submit_mult']);
($this->structureController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/ChangePrefixFormController.php b/src/Controllers/Database/Structure/ChangePrefixFormController.php
index 55f54e9716..657ca0c8ba 100644
--- a/src/Controllers/Database/Structure/ChangePrefixFormController.php
+++ b/src/Controllers/Database/Structure/ChangePrefixFormController.php
@@ -6,13 +6,14 @@ namespace PhpMyAdmin\Controllers\Database\Structure;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use function __;
final class ChangePrefixFormController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string[] $selected */
$selected = $request->getParsedBodyParam('selected_tbl', []);
@@ -21,7 +22,7 @@ final class ChangePrefixFormController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
$route = '/database/structure/replace-prefix';
@@ -36,5 +37,7 @@ final class ChangePrefixFormController extends AbstractController
$this->response->disable();
$this->render('database/structure/change_prefix_form', ['route' => $route, 'url_params' => $urlParams]);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/CopyFormController.php b/src/Controllers/Database/Structure/CopyFormController.php
index a3f90a1bfa..563d986622 100644
--- a/src/Controllers/Database/Structure/CopyFormController.php
+++ b/src/Controllers/Database/Structure/CopyFormController.php
@@ -7,13 +7,14 @@ namespace PhpMyAdmin\Controllers\Database\Structure;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use function __;
final class CopyFormController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string[] $selected */
$selected = $request->getParsedBodyParam('selected_tbl', []);
@@ -22,7 +23,7 @@ final class CopyFormController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
$urlParams = ['db' => Current::$database];
@@ -43,5 +44,7 @@ final class CopyFormController extends AbstractController
'url_params' => $urlParams,
'options' => $databasesList->getList(),
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/CopyTableController.php b/src/Controllers/Database/Structure/CopyTableController.php
index 7dac01a306..4ae08dc85b 100644
--- a/src/Controllers/Database/Structure/CopyTableController.php
+++ b/src/Controllers/Database/Structure/CopyTableController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Database\Structure;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Controllers\Database\StructureController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\Operations;
@@ -27,7 +28,7 @@ final class CopyTableController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string[] $selected */
$selected = $request->getParsedBodyParam('selected', []);
@@ -64,5 +65,7 @@ final class CopyTableController extends AbstractController
$GLOBALS['message'] = Message::success();
($this->structureController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/CopyTableWithPrefixController.php b/src/Controllers/Database/Structure/CopyTableWithPrefixController.php
index f7950717b2..98d1bc4561 100644
--- a/src/Controllers/Database/Structure/CopyTableWithPrefixController.php
+++ b/src/Controllers/Database/Structure/CopyTableWithPrefixController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Database\Structure;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Controllers\Database\StructureController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -26,7 +27,7 @@ final class CopyTableWithPrefixController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string[] $selected */
$selected = $request->getParsedBodyParam('selected', []);
@@ -53,5 +54,7 @@ final class CopyTableWithPrefixController extends AbstractController
$GLOBALS['message'] = Message::success();
($this->structureController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/DropFormController.php b/src/Controllers/Database/Structure/DropFormController.php
index 94c0538054..cc25e835a2 100644
--- a/src/Controllers/Database/Structure/DropFormController.php
+++ b/src/Controllers/Database/Structure/DropFormController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Database\Structure;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -23,7 +24,7 @@ final class DropFormController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string[] $selected */
$selected = $request->getParsedBodyParam('selected_tbl', []);
@@ -32,7 +33,7 @@ final class DropFormController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
$fullQueryViews = '';
@@ -66,5 +67,7 @@ final class DropFormController extends AbstractController
'full_query' => $fullQuery,
'is_foreign_key_check' => ForeignKey::isCheckEnabled(),
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/DropTableController.php b/src/Controllers/Database/Structure/DropTableController.php
index 0928d8bffe..177da1ecc7 100644
--- a/src/Controllers/Database/Structure/DropTableController.php
+++ b/src/Controllers/Database/Structure/DropTableController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Controllers\Database\StructureController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -30,7 +31,7 @@ final class DropTableController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['reload'] = $_POST['reload'] ?? $GLOBALS['reload'] ?? null;
$multBtn = $_POST['mult_btn'] ?? '';
@@ -44,7 +45,7 @@ final class DropTableController extends AbstractController
($this->structureController)($request);
- return;
+ return null;
}
$defaultFkCheckValue = ForeignKey::handleDisableCheckInit();
@@ -106,5 +107,7 @@ final class DropTableController extends AbstractController
unset($_POST['mult_btn']);
($this->structureController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/EmptyFormController.php b/src/Controllers/Database/Structure/EmptyFormController.php
index ddf0ec878a..b116720b17 100644
--- a/src/Controllers/Database/Structure/EmptyFormController.php
+++ b/src/Controllers/Database/Structure/EmptyFormController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Database\Structure;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Util;
use PhpMyAdmin\Utils\ForeignKey;
@@ -15,7 +16,7 @@ use function htmlspecialchars;
final class EmptyFormController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string[] $selected */
$selected = $request->getParsedBodyParam('selected_tbl', []);
@@ -24,7 +25,7 @@ final class EmptyFormController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
$fullQuery = '';
@@ -41,5 +42,7 @@ final class EmptyFormController extends AbstractController
'full_query' => $fullQuery,
'is_foreign_key_check' => ForeignKey::isCheckEnabled(),
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/EmptyTableController.php b/src/Controllers/Database/Structure/EmptyTableController.php
index 8eb68a4096..64b561ec9c 100644
--- a/src/Controllers/Database/Structure/EmptyTableController.php
+++ b/src/Controllers/Database/Structure/EmptyTableController.php
@@ -13,6 +13,7 @@ use PhpMyAdmin\Controllers\Database\StructureController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\FlashMessages;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -39,7 +40,7 @@ final class EmptyTableController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$multBtn = $_POST['mult_btn'] ?? '';
/** @var string[] $selected */
@@ -49,7 +50,7 @@ final class EmptyTableController extends AbstractController
$this->flash->addMessage('success', __('No change'));
$this->redirect('/database/structure', ['db' => Current::$database]);
- return;
+ return null;
}
$defaultFkCheckValue = ForeignKey::handleDisableCheckInit();
@@ -91,5 +92,7 @@ final class EmptyTableController extends AbstractController
unset($_POST['mult_btn']);
($this->structureController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/FavoriteTableController.php b/src/Controllers/Database/Structure/FavoriteTableController.php
index 80bd0ae242..d1e8137a46 100644
--- a/src/Controllers/Database/Structure/FavoriteTableController.php
+++ b/src/Controllers/Database/Structure/FavoriteTableController.php
@@ -12,6 +12,7 @@ use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Favorites\RecentFavoriteTable;
use PhpMyAdmin\Favorites\RecentFavoriteTables;
use PhpMyAdmin\Favorites\TableType;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -39,12 +40,12 @@ final class FavoriteTableController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
if (Current::$database === '') {
- return;
+ return null;
}
$config = Config::getInstance();
@@ -52,7 +53,7 @@ final class FavoriteTableController extends AbstractController
$GLOBALS['errorUrl'] .= Url::getCommon(['db' => Current::$database], '&');
if (! $request->isAjax()) {
- return;
+ return null;
}
$favoriteInstance = RecentFavoriteTables::getInstance(TableType::Favorite);
@@ -74,7 +75,7 @@ final class FavoriteTableController extends AbstractController
));
}
- return;
+ return null;
}
$databaseName = DatabaseName::tryFrom($request->getParam('db'));
@@ -82,7 +83,7 @@ final class FavoriteTableController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$changes = true;
@@ -120,7 +121,7 @@ final class FavoriteTableController extends AbstractController
]);
$this->response->addJSON($json);
- return;
+ return null;
}
// Check if current table is already in favorite list.
@@ -142,6 +143,8 @@ final class FavoriteTableController extends AbstractController
]);
$this->response->addJSON($json);
+
+ return null;
}
/**
diff --git a/src/Controllers/Database/Structure/RealRowCountController.php b/src/Controllers/Database/Structure/RealRowCountController.php
index 80e1381fe0..226f0aec06 100644
--- a/src/Controllers/Database/Structure/RealRowCountController.php
+++ b/src/Controllers/Database/Structure/RealRowCountController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Message;
@@ -33,7 +34,7 @@ final class RealRowCountController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
@@ -43,7 +44,7 @@ final class RealRowCountController extends AbstractController
];
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$GLOBALS['errorUrl'] = Util::getScriptNameForOption(
@@ -53,7 +54,7 @@ final class RealRowCountController extends AbstractController
$GLOBALS['errorUrl'] .= Url::getCommon(['db' => Current::$database], '&');
if (! $request->isAjax()) {
- return;
+ return null;
}
$databaseName = DatabaseName::tryFrom($request->getParam('db'));
@@ -61,7 +62,7 @@ final class RealRowCountController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
// If there is a request to update all table's row count.
@@ -75,7 +76,7 @@ final class RealRowCountController extends AbstractController
$this->response->addJSON(['real_row_count' => $realRowCount]);
- return;
+ return null;
}
// Array to store the results.
@@ -89,5 +90,7 @@ final class RealRowCountController extends AbstractController
}
$this->response->addJSON(['real_row_count_all' => $realRowCountAll]);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/ReplacePrefixController.php b/src/Controllers/Database/Structure/ReplacePrefixController.php
index 76e1b66f35..c00ddbc7aa 100644
--- a/src/Controllers/Database/Structure/ReplacePrefixController.php
+++ b/src/Controllers/Database/Structure/ReplacePrefixController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Controllers\Database\StructureController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -28,7 +29,7 @@ final class ReplacePrefixController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string[] $selected */
$selected = $request->getParsedBodyParam('selected', []);
@@ -58,5 +59,7 @@ final class ReplacePrefixController extends AbstractController
$GLOBALS['message'] = Message::success();
($this->structureController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Database/Structure/ShowCreateController.php b/src/Controllers/Database/Structure/ShowCreateController.php
index 67ffd794b6..0c3bb930b8 100644
--- a/src/Controllers/Database/Structure/ShowCreateController.php
+++ b/src/Controllers/Database/Structure/ShowCreateController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -21,7 +22,7 @@ final class ShowCreateController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string[] $selected */
$selected = $request->getParsedBodyParam('selected_tbl', []);
@@ -30,7 +31,7 @@ final class ShowCreateController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
$tables = $this->getShowCreateTables($selected);
@@ -38,6 +39,8 @@ final class ShowCreateController extends AbstractController
$showCreate = $this->template->render('database/structure/show_create', ['tables' => $tables]);
$this->response->addJSON('message', $showCreate);
+
+ return null;
}
/**
diff --git a/src/Controllers/Database/StructureController.php b/src/Controllers/Database/StructureController.php
index 5343ec2ca1..6f9564c2fd 100644
--- a/src/Controllers/Database/StructureController.php
+++ b/src/Controllers/Database/StructureController.php
@@ -16,6 +16,7 @@ use PhpMyAdmin\Favorites\RecentFavoriteTable;
use PhpMyAdmin\Favorites\RecentFavoriteTables;
use PhpMyAdmin\Favorites\TableType;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -122,14 +123,14 @@ final class StructureController extends AbstractController
$this->dbIsSystemSchema = true;
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
$parameters = ['sort' => $_REQUEST['sort'] ?? null, 'sort_order' => $_REQUEST['sort_order'] ?? null];
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$config = Config::getInstance();
@@ -142,12 +143,12 @@ final class StructureController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$this->addScriptFiles(['database/structure.js', 'table/change.js']);
@@ -208,6 +209,8 @@ final class StructureController extends AbstractController
'is_system_schema' => $this->dbIsSystemSchema,
'create_table_html' => $createTable,
]);
+
+ return null;
}
/** @param mixed[] $replicaInfo */
diff --git a/src/Controllers/Database/TrackingController.php b/src/Controllers/Database/TrackingController.php
index 41776a33c3..c6ceaa4da3 100644
--- a/src/Controllers/Database/TrackingController.php
+++ b/src/Controllers/Database/TrackingController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\LanguageManager;
@@ -40,7 +41,7 @@ class TrackingController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['urlParams'] ??= null;
$GLOBALS['errorUrl'] ??= null;
@@ -48,7 +49,7 @@ class TrackingController extends AbstractController
$this->addScriptFiles(['vendor/jquery/jquery.tablesorter.js', 'database/tracking.js']);
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$config = Config::getInstance();
@@ -61,12 +62,12 @@ class TrackingController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$GLOBALS['urlParams']['goto'] = Url::getFromRoute('/table/tracking');
@@ -116,7 +117,7 @@ class TrackingController extends AbstractController
'default_statements' => $config->selectedServer['tracking_default_statements'],
]);
- return;
+ return null;
}
} else {
$this->response->addHTML(Message::notice(
@@ -136,7 +137,7 @@ class TrackingController extends AbstractController
$this->render('database/create_table', ['db' => Current::$database]);
}
- return;
+ return null;
}
$this->response->addHTML($this->tracking->getHtmlForDbTrackingTables(
@@ -147,7 +148,7 @@ class TrackingController extends AbstractController
// If available print out database log
if ($trackedData->ddlog === []) {
- return;
+ return null;
}
$log = '';
@@ -157,5 +158,7 @@ class TrackingController extends AbstractController
}
$this->response->addHTML(Generator::getMessage(__('Database Log'), $log));
+
+ return null;
}
}
diff --git a/src/Controllers/DatabaseController.php b/src/Controllers/DatabaseController.php
index ee62d4297b..a72174ead8 100644
--- a/src/Controllers/DatabaseController.php
+++ b/src/Controllers/DatabaseController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -16,8 +17,10 @@ final class DatabaseController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->response->addJSON(['databases' => $this->dbi->getDatabaseList()]);
+
+ return null;
}
}
diff --git a/src/Controllers/ErrorReportController.php b/src/Controllers/ErrorReportController.php
index 235c7c37b2..5be1f83de5 100644
--- a/src/Controllers/ErrorReportController.php
+++ b/src/Controllers/ErrorReportController.php
@@ -12,6 +12,7 @@ use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Error\ErrorHandler;
use PhpMyAdmin\Error\ErrorReport;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -39,7 +40,7 @@ class ErrorReportController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string $exceptionType */
$exceptionType = $request->getParsedBodyParam('exception_type', '');
@@ -49,7 +50,7 @@ class ErrorReportController extends AbstractController
$alwaysSend = $request->getParsedBodyParam('always_send');
if (! in_array($exceptionType, ['js', 'php'], true)) {
- return;
+ return null;
}
$config = Config::getInstance();
@@ -145,5 +146,7 @@ class ErrorReportController extends AbstractController
// clear previous errors & save new ones.
$this->errorHandler->savePreviousErrors();
}
+
+ return null;
}
}
diff --git a/src/Controllers/Export/CheckTimeOutController.php b/src/Controllers/Export/CheckTimeOutController.php
index 16afca00a2..95b5c12579 100644
--- a/src/Controllers/Export/CheckTimeOutController.php
+++ b/src/Controllers/Export/CheckTimeOutController.php
@@ -5,23 +5,26 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Export;
use PhpMyAdmin\Controllers\AbstractController;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
final class CheckTimeOutController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->isAjax()) {
- return;
+ return null;
}
if (isset($_SESSION['pma_export_error'])) {
unset($_SESSION['pma_export_error']);
$this->response->addJSON('message', 'timeout');
- return;
+ return null;
}
$this->response->addJSON('message', 'success');
+
+ return null;
}
}
diff --git a/src/Controllers/Export/ExportController.php b/src/Controllers/Export/ExportController.php
index 09a5611855..1dc4ea5b4e 100644
--- a/src/Controllers/Export/ExportController.php
+++ b/src/Controllers/Export/ExportController.php
@@ -13,6 +13,7 @@ use PhpMyAdmin\Current;
use PhpMyAdmin\Encoding;
use PhpMyAdmin\Exceptions\ExportException;
use PhpMyAdmin\Export\Export;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Message;
@@ -44,7 +45,7 @@ final class ExportController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['export_type'] ??= null;
$GLOBALS['errorUrl'] ??= null;
@@ -97,7 +98,7 @@ final class ExportController extends AbstractController
$GLOBALS['what'] = Core::securePath($whatParam);
if (! $this->checkParameters(['what', 'export_type'])) {
- return;
+ return null;
}
// export class instance, not array of properties, as before
@@ -111,7 +112,7 @@ final class ExportController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addHTML(Message::error(__('Bad type!'))->getDisplay());
- return;
+ return null;
}
if ($request->hasBodyParam('sql_backquotes') && $exportPlugin instanceof ExportSql) {
@@ -194,7 +195,7 @@ final class ExportController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addHTML(Message::error(__('Bad parameters!'))->getDisplay());
- return;
+ return null;
}
// Merge SQL Query aliases with Export aliases from
@@ -281,7 +282,7 @@ final class ExportController extends AbstractController
$location = $this->export->getPageLocationAndSaveMessage($GLOBALS['export_type'], $message);
$this->response->redirect($location);
- return;
+ return null;
}
} elseif ($GLOBALS['asfile']) {
/**
@@ -306,7 +307,7 @@ final class ExportController extends AbstractController
$controller = ContainerBuilder::getContainer()->get(DatabaseExportController::class);
$controller($request);
- return;
+ return null;
}
}
@@ -492,7 +493,7 @@ final class ExportController extends AbstractController
$location = $this->export->getPageLocationAndSaveMessage($GLOBALS['export_type'], $GLOBALS['message']);
$this->response->redirect($location);
- return;
+ return null;
}
/**
@@ -505,7 +506,7 @@ final class ExportController extends AbstractController
Current::$table,
);
- return;
+ return null;
}
// Convert the charset if required.
@@ -544,10 +545,12 @@ final class ExportController extends AbstractController
$location = $this->export->getPageLocationAndSaveMessage($GLOBALS['export_type'], $message);
$this->response->redirect($location);
- return;
+ return null;
}
echo $this->export->dumpBuffer;
+
+ return null;
}
/**
diff --git a/src/Controllers/Export/TablesController.php b/src/Controllers/Export/TablesController.php
index ff45ec5dda..732839127f 100644
--- a/src/Controllers/Export/TablesController.php
+++ b/src/Controllers/Export/TablesController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Export;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Controllers\Database\ExportController;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -22,15 +23,17 @@ final class TablesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->hasBodyParam('selected_tbl')) {
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
($this->exportController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Export/Template/CreateController.php b/src/Controllers/Export/Template/CreateController.php
index 5d9f80cc47..ff47cc055a 100644
--- a/src/Controllers/Export/Template/CreateController.php
+++ b/src/Controllers/Export/Template/CreateController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Export\Template as ExportTemplate;
use PhpMyAdmin\Export\TemplateModel;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -26,7 +27,7 @@ final class CreateController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string $exportType */
$exportType = $request->getParsedBodyParam('exportType', '');
@@ -39,7 +40,7 @@ final class CreateController extends AbstractController
$exportTemplatesFeature = $this->relation->getRelationParameters()->exportTemplatesFeature;
if ($exportTemplatesFeature === null) {
- return;
+ return null;
}
$template = ExportTemplate::fromArray([
@@ -58,7 +59,7 @@ final class CreateController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $result);
- return;
+ return null;
}
$templates = $this->model->getAll(
@@ -76,5 +77,7 @@ final class CreateController extends AbstractController
'selected_template' => $templateId,
]),
);
+
+ return null;
}
}
diff --git a/src/Controllers/Export/Template/DeleteController.php b/src/Controllers/Export/Template/DeleteController.php
index a7b459b311..9ed9272cad 100644
--- a/src/Controllers/Export/Template/DeleteController.php
+++ b/src/Controllers/Export/Template/DeleteController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\Config;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Export\TemplateModel;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -23,13 +24,13 @@ final class DeleteController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$templateId = (int) $request->getParsedBodyParam('templateId');
$exportTemplatesFeature = $this->relation->getRelationParameters()->exportTemplatesFeature;
if ($exportTemplatesFeature === null) {
- return;
+ return null;
}
$result = $this->model->delete(
@@ -43,9 +44,11 @@ final class DeleteController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $result);
- return;
+ return null;
}
$this->response->setRequestStatus(true);
+
+ return null;
}
}
diff --git a/src/Controllers/Export/Template/LoadController.php b/src/Controllers/Export/Template/LoadController.php
index 615661dfbd..12e99041a0 100644
--- a/src/Controllers/Export/Template/LoadController.php
+++ b/src/Controllers/Export/Template/LoadController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Export\Template as ExportTemplate;
use PhpMyAdmin\Export\TemplateModel;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -24,13 +25,13 @@ final class LoadController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$templateId = (int) $request->getParsedBodyParam('templateId');
$exportTemplatesFeature = $this->relation->getRelationParameters()->exportTemplatesFeature;
if ($exportTemplatesFeature === null) {
- return;
+ return null;
}
$template = $this->model->load(
@@ -44,10 +45,12 @@ final class LoadController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $template);
- return;
+ return null;
}
$this->response->setRequestStatus(true);
$this->response->addJSON('data', $template->getData());
+
+ return null;
}
}
diff --git a/src/Controllers/Export/Template/UpdateController.php b/src/Controllers/Export/Template/UpdateController.php
index 68cb3c407c..bf71e6547d 100644
--- a/src/Controllers/Export/Template/UpdateController.php
+++ b/src/Controllers/Export/Template/UpdateController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Export\Template as ExportTemplate;
use PhpMyAdmin\Export\TemplateModel;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -24,7 +25,7 @@ final class UpdateController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$templateId = (int) $request->getParsedBodyParam('templateId');
/** @var string $templateData */
@@ -32,7 +33,7 @@ final class UpdateController extends AbstractController
$exportTemplatesFeature = $this->relation->getRelationParameters()->exportTemplatesFeature;
if ($exportTemplatesFeature === null) {
- return;
+ return null;
}
$template = ExportTemplate::fromArray([
@@ -50,9 +51,11 @@ final class UpdateController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $result);
- return;
+ return null;
}
$this->response->setRequestStatus(true);
+
+ return null;
}
}
diff --git a/src/Controllers/GisDataEditorController.php b/src/Controllers/GisDataEditorController.php
index fbc2c9d2aa..07ffaa1db0 100644
--- a/src/Controllers/GisDataEditorController.php
+++ b/src/Controllers/GisDataEditorController.php
@@ -9,6 +9,7 @@ namespace PhpMyAdmin\Controllers;
use PhpMyAdmin\Gis\GisFactory;
use PhpMyAdmin\Gis\GisVisualization;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use function array_merge;
@@ -33,7 +34,7 @@ class GisDataEditorController extends AbstractController
'GEOMETRYCOLLECTION',
];
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
/** @var string|null $field */
$field = $request->getParsedBodyParam('field');
@@ -47,7 +48,7 @@ class GisDataEditorController extends AbstractController
$inputName = $request->getParsedBodyParam('input_name');
if (! isset($field)) {
- return;
+ return null;
}
// Get data if any posted
@@ -59,7 +60,7 @@ class GisDataEditorController extends AbstractController
// Generate parameters from value passed.
$gisObj = GisFactory::fromType($geomType);
if ($gisObj === null) {
- return;
+ return null;
}
if (isset($value)) {
@@ -84,7 +85,7 @@ class GisDataEditorController extends AbstractController
if ($request->hasBodyParam('generate')) {
$this->response->addJSON(['result' => $result, 'visualization' => $svg, 'openLayers' => $openLayers]);
- return;
+ return null;
}
$templateOutput = $this->template->render('gis_data_editor_form', [
@@ -103,6 +104,8 @@ class GisDataEditorController extends AbstractController
]);
$this->response->addJSON(['gis_editor' => $templateOutput]);
+
+ return null;
}
/**
diff --git a/src/Controllers/GitInfoController.php b/src/Controllers/GitInfoController.php
index 103e33d4bb..c620759a9a 100644
--- a/src/Controllers/GitInfoController.php
+++ b/src/Controllers/GitInfoController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers;
use PhpMyAdmin\Config;
use PhpMyAdmin\Git;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -20,16 +21,16 @@ final class GitInfoController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->isAjax()) {
- return;
+ return null;
}
$git = new Git($this->config->get('ShowGitRevision') ?? true);
if (! $git->isGitRevision()) {
- return;
+ return null;
}
$commit = $git->checkGitRevision();
@@ -37,12 +38,14 @@ final class GitInfoController extends AbstractController
if (! $git->hasGitInformation() || $commit === null) {
$this->response->setRequestStatus(false);
- return;
+ return null;
}
$commit['author']['date'] = Util::localisedDate(strtotime($commit['author']['date']));
$commit['committer']['date'] = Util::localisedDate(strtotime($commit['committer']['date']));
$this->render('home/git_info', $commit);
+
+ return null;
}
}
diff --git a/src/Controllers/Import/ImportController.php b/src/Controllers/Import/ImportController.php
index 7622d1a313..1c405f73fa 100644
--- a/src/Controllers/Import/ImportController.php
+++ b/src/Controllers/Import/ImportController.php
@@ -15,6 +15,7 @@ use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Encoding;
use PhpMyAdmin\File;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Import\Import;
use PhpMyAdmin\Import\ImportSettings;
@@ -60,7 +61,7 @@ final class ImportController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['goto'] ??= null;
$GLOBALS['display_query'] ??= null;
@@ -177,7 +178,7 @@ final class ImportController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $GLOBALS['message']);
- return; // the footer is displayed automatically
+ return null; // the footer is displayed automatically
}
// Add console message id to response output
@@ -192,7 +193,7 @@ final class ImportController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addHTML(Message::error(__('Incorrect format parameter'))->getDisplay());
- return;
+ return null;
}
if (Current::$table !== '' && Current::$database !== '') {
@@ -305,7 +306,7 @@ final class ImportController extends AbstractController
$this->response->addJSON('sql_query', $GLOBALS['import_text']);
$this->response->addJSON('action_bookmark', $actionBookmark);
- return;
+ return null;
}
ImportSettings::$runQuery = false;
@@ -326,7 +327,7 @@ final class ImportController extends AbstractController
$this->response->addJSON('action_bookmark', $actionBookmark);
$this->response->addJSON('id_bookmark', $idBookmark);
- return;
+ return null;
}
ImportSettings::$runQuery = false;
@@ -409,7 +410,7 @@ final class ImportController extends AbstractController
$this->response->addJSON('message', $errorMessage->getDisplay());
$this->response->addHTML($errorMessage->getDisplay());
- return;
+ return null;
}
$importHandle->setDecompressContent(true);
@@ -426,7 +427,7 @@ final class ImportController extends AbstractController
$this->response->addJSON('message', $errorMessage->getDisplay());
$this->response->addHTML($errorMessage->getDisplay());
- return;
+ return null;
}
} elseif (! $GLOBALS['error'] && empty($GLOBALS['import_text'])) {
$GLOBALS['message'] = Message::error(
@@ -443,7 +444,7 @@ final class ImportController extends AbstractController
$this->response->addJSON('message', $GLOBALS['message']->getDisplay());
$this->response->addHTML($GLOBALS['message']->getDisplay());
- return;
+ return null;
}
// Convert the file's charset if necessary
@@ -636,7 +637,7 @@ final class ImportController extends AbstractController
$_SESSION['Import_message']['go_back_url'],
);
- return;
+ return null;
}
if (Current::$table != $tableFromSql && $tableFromSql !== '') {
@@ -678,7 +679,7 @@ final class ImportController extends AbstractController
$this->response->addJSON('ajax_reload', $GLOBALS['ajax_reload']);
$this->response->addHTML($htmlOutput);
- return;
+ return null;
}
if ($GLOBALS['result']) {
@@ -712,9 +713,11 @@ final class ImportController extends AbstractController
// If there is request for ROLLBACK in the end.
if (! $request->hasBodyParam('rollback_query')) {
- return;
+ return null;
}
$this->dbi->query('ROLLBACK');
+
+ return null;
}
}
diff --git a/src/Controllers/Import/SimulateDmlController.php b/src/Controllers/Import/SimulateDmlController.php
index 5d564d6c34..b33290f98f 100644
--- a/src/Controllers/Import/SimulateDmlController.php
+++ b/src/Controllers/Import/SimulateDmlController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Import;
use PhpMyAdmin\Controllers\AbstractController;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Import\SimulateDml;
use PhpMyAdmin\Message;
@@ -29,7 +30,7 @@ final class SimulateDmlController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$error = '';
$errorMsg = __('Only single-table UPDATE and DELETE queries can be simulated.');
@@ -81,9 +82,11 @@ final class SimulateDmlController extends AbstractController
$this->response->addJSON('message', $message);
$this->response->addJSON('sql_data', false);
- return;
+ return null;
}
$this->response->addJSON('sql_data', $sqlData);
+
+ return null;
}
}
diff --git a/src/Controllers/Import/StatusController.php b/src/Controllers/Import/StatusController.php
index 85f1e294ff..23544e41ab 100644
--- a/src/Controllers/Import/StatusController.php
+++ b/src/Controllers/Import/StatusController.php
@@ -4,7 +4,9 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Import;
+use PhpMyAdmin\Controllers\InvocableController;
use PhpMyAdmin\Core;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Import\Ajax;
use PhpMyAdmin\Message;
@@ -22,13 +24,13 @@ use function usleep;
/**
* Import progress bar backend
*/
-class StatusController
+class StatusController implements InvocableController
{
public function __construct(private Template $template)
{
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['SESSION_KEY'] ??= null;
@@ -75,5 +77,7 @@ class StatusController
} else {
Ajax::status($request->getQueryParam('id'));
}
+
+ return null;
}
}
diff --git a/src/Controllers/InvocableController.php b/src/Controllers/InvocableController.php
new file mode 100644
index 0000000000..e61bb81fe4
--- /dev/null
+++ b/src/Controllers/InvocableController.php
@@ -0,0 +1,13 @@
+responseFactory->createResponse()
->withHeader('Content-Type', 'text/javascript; charset=UTF-8')
diff --git a/src/Controllers/LicenseController.php b/src/Controllers/LicenseController.php
index 01d9dd6f23..a307653448 100644
--- a/src/Controllers/LicenseController.php
+++ b/src/Controllers/LicenseController.php
@@ -7,6 +7,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use function __;
@@ -19,7 +20,7 @@ use function readfile;
*/
class LicenseController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->response->disable();
$this->response->addHeader('Content-Type', 'text/plain; charset=utf-8');
@@ -30,7 +31,7 @@ class LicenseController extends AbstractController
if (@is_readable($filename)) {
readfile($filename);
- return;
+ return null;
}
printf(
@@ -40,5 +41,7 @@ class LicenseController extends AbstractController
$filename,
'https://www.phpmyadmin.net/',
);
+
+ return null;
}
}
diff --git a/src/Controllers/LintController.php b/src/Controllers/LintController.php
index c6aca46f48..15c14da1fa 100644
--- a/src/Controllers/LintController.php
+++ b/src/Controllers/LintController.php
@@ -8,6 +8,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers;
use PhpMyAdmin\Core;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Linter;
@@ -21,10 +22,10 @@ use function sprintf;
*/
class LintController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->isAjax()) {
- return;
+ return null;
}
/**
@@ -59,5 +60,7 @@ class LintController extends AbstractController
}
echo json_encode(Linter::lint("DELIMITER $$\n" . $sqlQuery . "$$\nDELIMITER ;\n"));
+
+ return null;
}
}
diff --git a/src/Controllers/LogoutController.php b/src/Controllers/LogoutController.php
index ba04cce359..86caa5572c 100644
--- a/src/Controllers/LogoutController.php
+++ b/src/Controllers/LogoutController.php
@@ -4,25 +4,28 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Plugins\AuthenticationPluginFactory;
use PhpMyAdmin\ResponseRenderer;
-class LogoutController
+class LogoutController implements InvocableController
{
public function __construct(private AuthenticationPluginFactory $authPluginFactory)
{
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->isPost() || $GLOBALS['token_mismatch']) {
ResponseRenderer::getInstance()->redirect('./index.php?route=/');
- return;
+ return null;
}
$authPlugin = $this->authPluginFactory->create();
$authPlugin->logOut();
+
+ return null;
}
}
diff --git a/src/Controllers/Navigation/UpdateNavWidthConfigController.php b/src/Controllers/Navigation/UpdateNavWidthConfigController.php
index 3a1c0c4afe..dc45973392 100644
--- a/src/Controllers/Navigation/UpdateNavWidthConfigController.php
+++ b/src/Controllers/Navigation/UpdateNavWidthConfigController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Navigation;
use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\AbstractController;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -21,22 +22,24 @@ final class UpdateNavWidthConfigController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$value = $request->getParsedBodyParam('value');
if (! is_numeric($value) || $value < 0) {
$this->response->setRequestStatus(false);
$this->response->addJSON(['message' => Message::error(__('Unexpected parameter value.'))]);
- return;
+ return null;
}
$result = $this->config->setUserValue(null, 'NavigationWidth', (int) $value);
if ($result === true) {
- return;
+ return null;
}
$this->response->setRequestStatus(false);
$this->response->addJSON(['message' => $result]);
+
+ return null;
}
}
diff --git a/src/Controllers/NavigationController.php b/src/Controllers/NavigationController.php
index 5d3c955825..6324400e6d 100644
--- a/src/Controllers/NavigationController.php
+++ b/src/Controllers/NavigationController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers;
use PhpMyAdmin\Config\PageSettings;
use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\Navigation\Navigation;
@@ -32,7 +33,7 @@ class NavigationController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->isAjax()) {
$this->response->addHTML(
@@ -41,7 +42,7 @@ class NavigationController extends AbstractController
)->getDisplay(),
);
- return;
+ return null;
}
if ($request->hasBodyParam('getNaviSettings')) {
@@ -49,7 +50,7 @@ class NavigationController extends AbstractController
$this->response->addHTML($this->pageSettings->getErrorHTML());
$this->response->addJSON('message', $this->pageSettings->getHTML());
- return;
+ return null;
}
if ($request->hasBodyParam('reload')) {
@@ -67,7 +68,7 @@ class NavigationController extends AbstractController
$this->navigation->hideNavigationItem($itemName, $itemType, $dbName);
}
- return;
+ return null;
}
if ($request->hasBodyParam('unhideNavItem')) {
@@ -75,7 +76,7 @@ class NavigationController extends AbstractController
$this->navigation->unhideNavigationItem($itemName, $itemType, $dbName);
}
- return;
+ return null;
}
if ($request->hasBodyParam('showUnhideDialog')) {
@@ -86,10 +87,12 @@ class NavigationController extends AbstractController
);
}
- return;
+ return null;
}
}
$this->response->addJSON('message', $this->navigation->getDisplay());
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/AddNewPrimaryController.php b/src/Controllers/Normalization/AddNewPrimaryController.php
index c2a5ca9ac1..3116de24cc 100644
--- a/src/Controllers/Normalization/AddNewPrimaryController.php
+++ b/src/Controllers/Normalization/AddNewPrimaryController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -26,7 +27,7 @@ final class AddNewPrimaryController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$userPrivileges = $this->userPrivilegesFactory->getPrivileges();
@@ -47,5 +48,7 @@ final class AddNewPrimaryController extends AbstractController
);
$html .= Url::getHiddenInputs($dbName, $tableName);
$this->response->addHTML($html);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/CreateNewColumnController.php b/src/Controllers/Normalization/CreateNewColumnController.php
index f7ab8ea4ef..bf613043bf 100644
--- a/src/Controllers/Normalization/CreateNewColumnController.php
+++ b/src/Controllers/Normalization/CreateNewColumnController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Normalization;
use PhpMyAdmin\ResponseRenderer;
@@ -26,7 +27,7 @@ final class CreateNewColumnController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$userPrivileges = $this->userPrivilegesFactory->getPrivileges();
@@ -39,5 +40,7 @@ final class CreateNewColumnController extends AbstractController
);
$html .= Url::getHiddenInputs(Current::$database, Current::$table);
$this->response->addHTML($html);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/FirstNormalForm/FirstStepController.php b/src/Controllers/Normalization/FirstNormalForm/FirstStepController.php
index 25bd357e3d..90d1aafdcd 100644
--- a/src/Controllers/Normalization/FirstNormalForm/FirstStepController.php
+++ b/src/Controllers/Normalization/FirstNormalForm/FirstStepController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization\FirstNormalForm;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Normalization;
use PhpMyAdmin\ResponseRenderer;
@@ -20,7 +21,7 @@ final class FirstStepController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->addScriptFiles(['normalization.js', 'vendor/jquery/jquery.uitablefilter.js']);
@@ -32,5 +33,7 @@ final class FirstStepController extends AbstractController
$html = $this->normalization->getHtmlFor1NFStep1(Current::$database, Current::$table, $normalForm);
$this->response->addHTML($html);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/FirstNormalForm/FourthStepController.php b/src/Controllers/Normalization/FirstNormalForm/FourthStepController.php
index 0937b93670..7f0d9cd95d 100644
--- a/src/Controllers/Normalization/FirstNormalForm/FourthStepController.php
+++ b/src/Controllers/Normalization/FirstNormalForm/FourthStepController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization\FirstNormalForm;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Normalization;
use PhpMyAdmin\ResponseRenderer;
@@ -18,9 +19,11 @@ final class FourthStepController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$res = $this->normalization->getHtmlContentsFor1NFStep4(Current::$database, Current::$table);
$this->response->addJSON($res);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/FirstNormalForm/SecondStepController.php b/src/Controllers/Normalization/FirstNormalForm/SecondStepController.php
index 99ce542c14..d3970f24b3 100644
--- a/src/Controllers/Normalization/FirstNormalForm/SecondStepController.php
+++ b/src/Controllers/Normalization/FirstNormalForm/SecondStepController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization\FirstNormalForm;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Normalization;
use PhpMyAdmin\ResponseRenderer;
@@ -18,9 +19,11 @@ final class SecondStepController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$res = $this->normalization->getHtmlContentsFor1NFStep2(Current::$database, Current::$table);
$this->response->addJSON($res);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/FirstNormalForm/ThirdStepController.php b/src/Controllers/Normalization/FirstNormalForm/ThirdStepController.php
index 361c81a1d8..323e76412c 100644
--- a/src/Controllers/Normalization/FirstNormalForm/ThirdStepController.php
+++ b/src/Controllers/Normalization/FirstNormalForm/ThirdStepController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization\FirstNormalForm;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Normalization;
use PhpMyAdmin\ResponseRenderer;
@@ -18,9 +19,11 @@ final class ThirdStepController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$res = $this->normalization->getHtmlContentsFor1NFStep3(Current::$database, Current::$table);
$this->response->addJSON($res);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/GetColumnsController.php b/src/Controllers/Normalization/GetColumnsController.php
index 41880db9e7..3979b275b9 100644
--- a/src/Controllers/Normalization/GetColumnsController.php
+++ b/src/Controllers/Normalization/GetColumnsController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Normalization;
use PhpMyAdmin\ResponseRenderer;
@@ -21,7 +22,7 @@ final class GetColumnsController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$html = ''
. '';
@@ -32,5 +33,7 @@ final class GetColumnsController extends AbstractController
_pgettext('string types', 'String'),
);
$this->response->addHTML($html);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/MainController.php b/src/Controllers/Normalization/MainController.php
index 6448245777..4cbf23d516 100644
--- a/src/Controllers/Normalization/MainController.php
+++ b/src/Controllers/Normalization/MainController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
/**
@@ -13,9 +14,11 @@ use PhpMyAdmin\Http\ServerRequest;
*/
class MainController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->addScriptFiles(['normalization.js', 'vendor/jquery/jquery.uitablefilter.js']);
$this->render('table/normalization/normalization', ['db' => Current::$database, 'table' => Current::$table]);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/MoveRepeatingGroup.php b/src/Controllers/Normalization/MoveRepeatingGroup.php
index 239f596bfc..4ddf9cf506 100644
--- a/src/Controllers/Normalization/MoveRepeatingGroup.php
+++ b/src/Controllers/Normalization/MoveRepeatingGroup.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Normalization;
use PhpMyAdmin\ResponseRenderer;
@@ -18,7 +19,7 @@ final class MoveRepeatingGroup extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$repeatingColumns = $request->getParsedBodyParam('repeatingColumns');
$newTable = $request->getParsedBodyParam('newTable');
@@ -33,5 +34,7 @@ final class MoveRepeatingGroup extends AbstractController
Current::$database,
);
$this->response->addJSON($res);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/PartialDependenciesController.php b/src/Controllers/Normalization/PartialDependenciesController.php
index 501abb83a5..42d1d5f016 100644
--- a/src/Controllers/Normalization/PartialDependenciesController.php
+++ b/src/Controllers/Normalization/PartialDependenciesController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Normalization;
use PhpMyAdmin\ResponseRenderer;
@@ -18,9 +19,11 @@ final class PartialDependenciesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$html = $this->normalization->findPartialDependencies(Current::$table, Current::$database);
$this->response->addHTML($html);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/SecondNormalForm/CreateNewTablesController.php b/src/Controllers/Normalization/SecondNormalForm/CreateNewTablesController.php
index b464c62f4b..9e67a799f6 100644
--- a/src/Controllers/Normalization/SecondNormalForm/CreateNewTablesController.php
+++ b/src/Controllers/Normalization/SecondNormalForm/CreateNewTablesController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization\SecondNormalForm;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Normalization;
use PhpMyAdmin\ResponseRenderer;
@@ -20,7 +21,7 @@ final class CreateNewTablesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$partialDependencies = json_decode($request->getParsedBodyParam('pd'), true);
$tablesName = json_decode($request->getParsedBodyParam('newTablesName'));
@@ -31,5 +32,7 @@ final class CreateNewTablesController extends AbstractController
Current::$database,
);
$this->response->addJSON($res);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/SecondNormalForm/FirstStepController.php b/src/Controllers/Normalization/SecondNormalForm/FirstStepController.php
index 8cf69de60e..f2eeee54f7 100644
--- a/src/Controllers/Normalization/SecondNormalForm/FirstStepController.php
+++ b/src/Controllers/Normalization/SecondNormalForm/FirstStepController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization\SecondNormalForm;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Normalization;
use PhpMyAdmin\ResponseRenderer;
@@ -18,9 +19,11 @@ final class FirstStepController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$res = $this->normalization->getHtmlFor2NFstep1(Current::$database, Current::$table);
$this->response->addJSON($res);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/SecondNormalForm/NewTablesController.php b/src/Controllers/Normalization/SecondNormalForm/NewTablesController.php
index 412cb9764b..b97b4d38cb 100644
--- a/src/Controllers/Normalization/SecondNormalForm/NewTablesController.php
+++ b/src/Controllers/Normalization/SecondNormalForm/NewTablesController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization\SecondNormalForm;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Normalization;
use PhpMyAdmin\ResponseRenderer;
@@ -20,10 +21,12 @@ final class NewTablesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$partialDependencies = json_decode($request->getParsedBodyParam('pd'), true);
$html = $this->normalization->getHtmlForNewTables2NF($partialDependencies, Current::$table);
$this->response->addHTML($html);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/ThirdNormalForm/CreateNewTablesController.php b/src/Controllers/Normalization/ThirdNormalForm/CreateNewTablesController.php
index d38dd667c4..6a2c796717 100644
--- a/src/Controllers/Normalization/ThirdNormalForm/CreateNewTablesController.php
+++ b/src/Controllers/Normalization/ThirdNormalForm/CreateNewTablesController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization\ThirdNormalForm;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Normalization;
use PhpMyAdmin\ResponseRenderer;
@@ -20,10 +21,12 @@ final class CreateNewTablesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$newtables = json_decode($request->getParsedBodyParam('newTables'), true);
$res = $this->normalization->createNewTablesFor3NF($newtables, Current::$database);
$this->response->addJSON($res);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/ThirdNormalForm/FirstStepController.php b/src/Controllers/Normalization/ThirdNormalForm/FirstStepController.php
index be3e63828e..ad5dd8ca8a 100644
--- a/src/Controllers/Normalization/ThirdNormalForm/FirstStepController.php
+++ b/src/Controllers/Normalization/ThirdNormalForm/FirstStepController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization\ThirdNormalForm;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Normalization;
use PhpMyAdmin\ResponseRenderer;
@@ -18,10 +19,12 @@ final class FirstStepController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$tables = $request->getParsedBodyParam('tables');
$res = $this->normalization->getHtmlFor3NFstep1(Current::$database, $tables);
$this->response->addJSON($res);
+
+ return null;
}
}
diff --git a/src/Controllers/Normalization/ThirdNormalForm/NewTablesController.php b/src/Controllers/Normalization/ThirdNormalForm/NewTablesController.php
index 742f682d38..b2de3dac3c 100644
--- a/src/Controllers/Normalization/ThirdNormalForm/NewTablesController.php
+++ b/src/Controllers/Normalization/ThirdNormalForm/NewTablesController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Normalization\ThirdNormalForm;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Normalization;
use PhpMyAdmin\ResponseRenderer;
@@ -20,11 +21,13 @@ final class NewTablesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$dependencies = json_decode($request->getParsedBodyParam('pd'));
$tables = json_decode($request->getParsedBodyParam('tables'), true);
$newTables = $this->normalization->getHtmlForNewTables3NF($dependencies, $tables, Current::$database);
$this->response->addJSON($newTables);
+
+ return null;
}
}
diff --git a/src/Controllers/Operations/Database/CollationController.php b/src/Controllers/Operations/Database/CollationController.php
index 1f3f724cfb..958c2169e7 100644
--- a/src/Controllers/Operations/Database/CollationController.php
+++ b/src/Controllers/Operations/Database/CollationController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Message;
@@ -32,12 +33,12 @@ final class CollationController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
if (! $request->isAjax()) {
- return;
+ return null;
}
$dbCollation = $request->getParsedBodyParam('db_collation') ?? '';
@@ -45,11 +46,11 @@ final class CollationController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No collation provided.')));
- return;
+ return null;
}
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$GLOBALS['errorUrl'] = Util::getScriptNameForOption(
@@ -63,7 +64,7 @@ final class CollationController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$sqlQuery = 'ALTER DATABASE ' . Util::backquote(Current::$database)
@@ -103,5 +104,7 @@ final class CollationController extends AbstractController
$this->response->setRequestStatus($message->isSuccess());
$this->response->addJSON('message', $message);
+
+ return null;
}
}
diff --git a/src/Controllers/Operations/DatabaseController.php b/src/Controllers/Operations/DatabaseController.php
index 7a767fcc5a..e6882922bc 100644
--- a/src/Controllers/Operations/DatabaseController.php
+++ b/src/Controllers/Operations/DatabaseController.php
@@ -13,6 +13,7 @@ use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidDatabaseName;
@@ -47,7 +48,7 @@ class DatabaseController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['message'] ??= null;
$GLOBALS['errorUrl'] ??= null;
@@ -212,7 +213,7 @@ class DatabaseController extends AbstractController
);
$this->response->addJSON('db', Current::$database);
- return;
+ return null;
}
}
@@ -227,7 +228,7 @@ class DatabaseController extends AbstractController
}
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$config = Config::getInstance();
@@ -240,12 +241,12 @@ class DatabaseController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$GLOBALS['urlParams']['goto'] = Url::getFromRoute('/database/operations');
@@ -259,7 +260,7 @@ class DatabaseController extends AbstractController
$dbCollation = $this->dbi->getDbCollation(Current::$database);
if (Utilities::isSystemSchema(Current::$database)) {
- return;
+ return null;
}
$databaseComment = '';
@@ -307,5 +308,7 @@ class DatabaseController extends AbstractController
'charsets' => $charsets,
'collations' => $collations,
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Operations/TableController.php b/src/Controllers/Operations/TableController.php
index dda40c9c8f..54d8c54913 100644
--- a/src/Controllers/Operations/TableController.php
+++ b/src/Controllers/Operations/TableController.php
@@ -12,6 +12,7 @@ use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -53,7 +54,7 @@ class TableController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['urlParams'] ??= null;
$GLOBALS['auto_increment'] ??= null;
@@ -71,7 +72,7 @@ class TableController extends AbstractController
$this->addScriptFiles(['table/operations.js']);
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$isSystemSchema = Utilities::isSystemSchema(Current::$database);
@@ -86,12 +87,12 @@ class TableController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -100,12 +101,12 @@ class TableController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
$GLOBALS['urlParams']['goto'] = $GLOBALS['urlParams']['back'] = Url::getFromRoute('/table/operations');
@@ -155,7 +156,7 @@ class TableController extends AbstractController
$message = $this->operations->moveOrCopyTable($userPrivileges, Current::$database, Current::$table);
if (! $request->isAjax()) {
- return;
+ return null;
}
$this->response->addJSON('message', $message);
@@ -169,12 +170,12 @@ class TableController extends AbstractController
$this->response->addJSON('db', Current::$database);
- return;
+ return null;
}
$this->response->setRequestStatus(false);
- return;
+ return null;
}
$newMessage = '';
@@ -278,7 +279,7 @@ class TableController extends AbstractController
Message::error(__('No collation provided.')),
);
- return;
+ return null;
}
}
}
@@ -362,7 +363,7 @@ class TableController extends AbstractController
);
}
- return;
+ return null;
}
} else {
$newMessage = $result
@@ -384,7 +385,7 @@ class TableController extends AbstractController
);
}
- return;
+ return null;
}
}
@@ -521,5 +522,7 @@ class TableController extends AbstractController
'partitions_choices' => $partitionsChoices,
'foreigners' => $foreigners,
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Operations/ViewController.php b/src/Controllers/Operations/ViewController.php
index b5ed5f73cc..da5ccad5e1 100644
--- a/src/Controllers/Operations/ViewController.php
+++ b/src/Controllers/Operations/ViewController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -38,7 +39,7 @@ class ViewController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['urlParams'] ??= null;
$tableObject = $this->dbi->getTable(Current::$database, Current::$table);
@@ -47,7 +48,7 @@ class ViewController extends AbstractController
$this->addScriptFiles(['table/operations.js']);
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$GLOBALS['urlParams'] = ['db' => Current::$database, 'table' => Current::$table];
@@ -63,12 +64,12 @@ class ViewController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -77,12 +78,12 @@ class ViewController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
$GLOBALS['urlParams']['goto'] = $GLOBALS['urlParams']['back'] = Url::getFromRoute('/view/operations');
@@ -140,5 +141,7 @@ class ViewController extends AbstractController
'table' => Current::$table,
'url_params' => $GLOBALS['urlParams'],
]);
+
+ return null;
}
}
diff --git a/src/Controllers/PhpInfoController.php b/src/Controllers/PhpInfoController.php
index 1d5353f634..9fc3e3639d 100644
--- a/src/Controllers/PhpInfoController.php
+++ b/src/Controllers/PhpInfoController.php
@@ -8,6 +8,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers;
use PhpMyAdmin\Config;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use function phpinfo;
@@ -21,15 +22,17 @@ use const INFO_MODULES;
*/
class PhpInfoController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->response->disable();
$this->response->getHeader()->sendHttpHeaders();
if (! Config::getInstance()->settings['ShowPhpInfo']) {
- return;
+ return null;
}
phpinfo(INFO_GENERAL | INFO_CONFIGURATION | INFO_MODULES);
+
+ return null;
}
}
diff --git a/src/Controllers/Preferences/ExportController.php b/src/Controllers/Preferences/ExportController.php
index 048541b79c..56271f7c21 100644
--- a/src/Controllers/Preferences/ExportController.php
+++ b/src/Controllers/Preferences/ExportController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Config\Forms\User\ExportForm;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -35,7 +36,7 @@ class ExportController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['cf'] ??= null;
$GLOBALS['error'] ??= null;
@@ -52,7 +53,7 @@ class ExportController extends AbstractController
$formDisplay->fixErrors();
$this->redirect('/preferences/export');
- return;
+ return null;
}
$GLOBALS['error'] = null;
@@ -70,7 +71,7 @@ class ExportController extends AbstractController
$GLOBALS['hash'] = ltrim($GLOBALS['tabHash'], '#');
$this->userPreferences->redirect('index.php?route=/preferences/export', null, $GLOBALS['hash']);
- return;
+ return null;
}
$GLOBALS['error'] = $result;
@@ -102,5 +103,7 @@ class ExportController extends AbstractController
} else {
define('PMA_DISABLE_NAVI_SETTINGS', true);
}
+
+ return null;
}
}
diff --git a/src/Controllers/Preferences/FeaturesController.php b/src/Controllers/Preferences/FeaturesController.php
index 3b2f5d04fb..3981b2d73f 100644
--- a/src/Controllers/Preferences/FeaturesController.php
+++ b/src/Controllers/Preferences/FeaturesController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Config\Forms\User\FeaturesForm;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -35,7 +36,7 @@ class FeaturesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['cf'] ??= null;
$GLOBALS['error'] ??= null;
@@ -52,7 +53,7 @@ class FeaturesController extends AbstractController
$formDisplay->fixErrors();
$this->redirect('/preferences/features');
- return;
+ return null;
}
$GLOBALS['error'] = null;
@@ -70,7 +71,7 @@ class FeaturesController extends AbstractController
$GLOBALS['hash'] = ltrim($GLOBALS['tabHash'], '#');
$this->userPreferences->redirect('index.php?route=/preferences/features', null, $GLOBALS['hash']);
- return;
+ return null;
}
$GLOBALS['error'] = $result;
@@ -102,5 +103,7 @@ class FeaturesController extends AbstractController
} else {
define('PMA_DISABLE_NAVI_SETTINGS', true);
}
+
+ return null;
}
}
diff --git a/src/Controllers/Preferences/ImportController.php b/src/Controllers/Preferences/ImportController.php
index a343ef1a2c..ee1fee7fad 100644
--- a/src/Controllers/Preferences/ImportController.php
+++ b/src/Controllers/Preferences/ImportController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Config\Forms\User\ImportForm;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -35,7 +36,7 @@ class ImportController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['cf'] ??= null;
$GLOBALS['error'] ??= null;
@@ -52,7 +53,7 @@ class ImportController extends AbstractController
$formDisplay->fixErrors();
$this->redirect('/preferences/import');
- return;
+ return null;
}
$GLOBALS['error'] = null;
@@ -70,7 +71,7 @@ class ImportController extends AbstractController
$GLOBALS['hash'] = ltrim($GLOBALS['tabHash'], '#');
$this->userPreferences->redirect('index.php?route=/preferences/import', null, $GLOBALS['hash']);
- return;
+ return null;
}
$GLOBALS['error'] = $result;
@@ -102,5 +103,7 @@ class ImportController extends AbstractController
} else {
define('PMA_DISABLE_NAVI_SETTINGS', true);
}
+
+ return null;
}
}
diff --git a/src/Controllers/Preferences/MainPanelController.php b/src/Controllers/Preferences/MainPanelController.php
index f5b81da88e..7bcf4ed91d 100644
--- a/src/Controllers/Preferences/MainPanelController.php
+++ b/src/Controllers/Preferences/MainPanelController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Config\Forms\User\MainForm;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -35,7 +36,7 @@ class MainPanelController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['cf'] ??= null;
$GLOBALS['error'] ??= null;
@@ -52,7 +53,7 @@ class MainPanelController extends AbstractController
$formDisplay->fixErrors();
$this->redirect('/preferences/main-panel');
- return;
+ return null;
}
$GLOBALS['error'] = null;
@@ -70,7 +71,7 @@ class MainPanelController extends AbstractController
$GLOBALS['hash'] = ltrim($GLOBALS['tabHash'], '#');
$this->userPreferences->redirect('index.php?route=/preferences/main-panel', null, $GLOBALS['hash']);
- return;
+ return null;
}
$GLOBALS['error'] = $result;
@@ -102,5 +103,7 @@ class MainPanelController extends AbstractController
} else {
define('PMA_DISABLE_NAVI_SETTINGS', true);
}
+
+ return null;
}
}
diff --git a/src/Controllers/Preferences/ManageController.php b/src/Controllers/Preferences/ManageController.php
index 42648b2411..a815c68ab5 100644
--- a/src/Controllers/Preferences/ManageController.php
+++ b/src/Controllers/Preferences/ManageController.php
@@ -11,6 +11,7 @@ use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Core;
use PhpMyAdmin\File;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -56,7 +57,7 @@ class ManageController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['cf'] ??= null;
$GLOBALS['error'] ??= null;
@@ -77,7 +78,7 @@ class ManageController extends AbstractController
$settings = $this->userPreferences->load();
echo json_encode($settings['config_data'], JSON_PRETTY_PRINT);
- return;
+ return null;
}
if ($request->hasBodyParam('submit_export') && $request->getParsedBodyParam('export_type') === 'php_file') {
@@ -93,7 +94,7 @@ class ManageController extends AbstractController
echo var_export($val, true) . ";\n";
}
- return;
+ return null;
}
if ($request->hasBodyParam('submit_get_json')) {
@@ -101,7 +102,7 @@ class ManageController extends AbstractController
$this->response->addJSON('prefs', json_encode($settings['config_data']));
$this->response->addJSON('mtime', $settings['mtime']);
- return;
+ return null;
}
if ($request->hasBodyParam('submit_import')) {
@@ -181,7 +182,7 @@ class ManageController extends AbstractController
'return_url' => $returnUrl,
]);
- return;
+ return null;
}
// check for ThemeDefault
@@ -223,7 +224,7 @@ class ManageController extends AbstractController
$this->config->loadUserPreferences($this->themeManager);
$this->userPreferences->redirect($returnUrl ?? '', $redirectParams);
- return;
+ return null;
}
$GLOBALS['error'] = $result;
@@ -234,12 +235,12 @@ class ManageController extends AbstractController
$this->config->removeCookie('pma_lang');
$this->userPreferences->redirect('index.php?route=/preferences/manage');
- return;
+ return null;
}
$GLOBALS['error'] = $result;
- return;
+ return null;
}
$relationParameters = $this->relation->getRelationParameters();
@@ -270,5 +271,7 @@ class ManageController extends AbstractController
} else {
define('PMA_DISABLE_NAVI_SETTINGS', true);
}
+
+ return null;
}
}
diff --git a/src/Controllers/Preferences/NavigationController.php b/src/Controllers/Preferences/NavigationController.php
index 4ed9cb8202..cc0e4ae320 100644
--- a/src/Controllers/Preferences/NavigationController.php
+++ b/src/Controllers/Preferences/NavigationController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Config\Forms\User\NaviForm;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -35,7 +36,7 @@ class NavigationController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['cf'] ??= null;
$GLOBALS['error'] ??= null;
@@ -52,7 +53,7 @@ class NavigationController extends AbstractController
$formDisplay->fixErrors();
$this->redirect('/preferences/navigation');
- return;
+ return null;
}
$GLOBALS['error'] = null;
@@ -70,7 +71,7 @@ class NavigationController extends AbstractController
$GLOBALS['hash'] = ltrim($GLOBALS['tabHash'], '#');
$this->userPreferences->redirect('index.php?route=/preferences/navigation', null, $GLOBALS['hash']);
- return;
+ return null;
}
$GLOBALS['error'] = $result;
@@ -100,9 +101,11 @@ class NavigationController extends AbstractController
if ($request->isAjax()) {
$this->response->addJSON('disableNaviSettings', true);
- return;
+ return null;
}
define('PMA_DISABLE_NAVI_SETTINGS', true);
+
+ return null;
}
}
diff --git a/src/Controllers/Preferences/SqlController.php b/src/Controllers/Preferences/SqlController.php
index 40db4c451a..b66c29ed65 100644
--- a/src/Controllers/Preferences/SqlController.php
+++ b/src/Controllers/Preferences/SqlController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Config\Forms\User\SqlForm;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -35,7 +36,7 @@ class SqlController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['cf'] ??= null;
$GLOBALS['error'] ??= null;
@@ -52,7 +53,7 @@ class SqlController extends AbstractController
$formDisplay->fixErrors();
$this->redirect('/preferences/sql');
- return;
+ return null;
}
$GLOBALS['error'] = null;
@@ -70,7 +71,7 @@ class SqlController extends AbstractController
$GLOBALS['hash'] = ltrim($GLOBALS['tabHash'], '#');
$this->userPreferences->redirect('index.php?route=/preferences/sql', null, $GLOBALS['hash']);
- return;
+ return null;
}
$GLOBALS['error'] = $result;
@@ -102,5 +103,7 @@ class SqlController extends AbstractController
} else {
define('PMA_DISABLE_NAVI_SETTINGS', true);
}
+
+ return null;
}
}
diff --git a/src/Controllers/Preferences/TwoFactorController.php b/src/Controllers/Preferences/TwoFactorController.php
index 0be510ff10..9915a84afa 100644
--- a/src/Controllers/Preferences/TwoFactorController.php
+++ b/src/Controllers/Preferences/TwoFactorController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Preferences;
use PhpMyAdmin\Config;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\AbstractController;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -24,7 +25,7 @@ class TwoFactorController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$relationParameters = $this->relation->getRelationParameters();
@@ -40,7 +41,7 @@ class TwoFactorController extends AbstractController
if (! $twoFactor->check($request, true)) {
$this->render('preferences/two_factor/confirm', ['form' => $twoFactor->render($request)]);
- return;
+ return null;
}
$twoFactor->configure($request, '');
@@ -54,7 +55,7 @@ class TwoFactorController extends AbstractController
'configure' => $request->getParsedBodyParam('2fa_configure'),
]);
- return;
+ return null;
}
$this->response->addHTML(
@@ -78,5 +79,7 @@ class TwoFactorController extends AbstractController
} else {
define('PMA_DISABLE_NAVI_SETTINGS', true);
}
+
+ return null;
}
}
diff --git a/src/Controllers/RecentTablesListController.php b/src/Controllers/RecentTablesListController.php
index 0304f2ad45..b80c4e2d77 100644
--- a/src/Controllers/RecentTablesListController.php
+++ b/src/Controllers/RecentTablesListController.php
@@ -6,16 +6,19 @@ namespace PhpMyAdmin\Controllers;
use PhpMyAdmin\Favorites\RecentFavoriteTables;
use PhpMyAdmin\Favorites\TableType;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
final class RecentTablesListController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->isAjax()) {
- return;
+ return null;
}
$this->response->addJSON(['list' => RecentFavoriteTables::getInstance(TableType::Recent)->getHtmlList()]);
+
+ return null;
}
}
diff --git a/src/Controllers/SchemaExportController.php b/src/Controllers/SchemaExportController.php
index 031d1131ae..f096093461 100644
--- a/src/Controllers/SchemaExportController.php
+++ b/src/Controllers/SchemaExportController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\Core;
use PhpMyAdmin\Exceptions\ExportException;
use PhpMyAdmin\Export\Export;
use PhpMyAdmin\Html\MySQLDocumentation;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Message;
@@ -20,13 +21,13 @@ use function mb_strlen;
/**
* Schema export handler
*/
-class SchemaExportController
+class SchemaExportController implements InvocableController
{
public function __construct(private Export $export, private ResponseRenderer $response)
{
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$db = DatabaseName::tryFrom($request->getParsedBodyParam('db'));
/** @var mixed $exportType */
@@ -38,7 +39,7 @@ class SchemaExportController
$this->response->setRequestStatus(false);
$this->response->addHTML(Message::error($errorMessage)->getDisplay());
- return;
+ return null;
}
/**
@@ -50,7 +51,7 @@ class SchemaExportController
$this->response->setRequestStatus(false);
$this->response->addHTML(Message::error($exception->getMessage())->getDisplay());
- return;
+ return null;
}
$this->response->disable();
@@ -60,5 +61,7 @@ class SchemaExportController
mb_strlen($exportInfo['fileData'], '8bit'),
);
echo $exportInfo['fileData'];
+
+ return null;
}
}
diff --git a/src/Controllers/Server/BinlogController.php b/src/Controllers/Server/BinlogController.php
index d2cf0b8cf2..e9c265ad59 100644
--- a/src/Controllers/Server/BinlogController.php
+++ b/src/Controllers/Server/BinlogController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -36,7 +37,7 @@ final class BinlogController extends AbstractController
$this->binaryLogs = $this->dbi->fetchResult('SHOW MASTER LOGS', 'Log_name');
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$log = $request->getParsedBodyParam('log');
$position = (int) $request->getParsedBodyParam('pos', 0);
@@ -99,6 +100,8 @@ final class BinlogController extends AbstractController
'has_icons' => Util::showIcons('TableNavigationLinksMode'),
'is_full_query' => $isFullQuery,
]);
+
+ return null;
}
/**
diff --git a/src/Controllers/Server/CollationsController.php b/src/Controllers/Server/CollationsController.php
index 36d62612bc..b67184259e 100644
--- a/src/Controllers/Server/CollationsController.php
+++ b/src/Controllers/Server/CollationsController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Charsets\Collation;
use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -44,7 +45,7 @@ class CollationsController extends AbstractController
$this->collations = $collations ?? Charsets::getCollations($this->dbi, $config->selectedServer['DisableIS']);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] = Url::getFromRoute('/');
@@ -71,5 +72,7 @@ class CollationsController extends AbstractController
}
$this->render('server/collations/index', ['charsets' => $charsets]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Databases/CreateController.php b/src/Controllers/Server/Databases/CreateController.php
index df7566bf0d..2d0095ade0 100644
--- a/src/Controllers/Server/Databases/CreateController.php
+++ b/src/Controllers/Server/Databases/CreateController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -31,7 +32,7 @@ final class CreateController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$newDb = $request->getParsedBodyParam('new_db');
$dbCollation = $request->getParsedBodyParam('db_collation');
@@ -39,7 +40,7 @@ final class CreateController extends AbstractController
if (! is_string($newDb) || $newDb === '' || ! $request->isAjax()) {
$this->response->addJSON(['message' => Message::error()]);
- return;
+ return null;
}
if ($this->dbi->getLowerCaseNames() === 1) {
@@ -95,5 +96,7 @@ final class CreateController extends AbstractController
}
$this->response->addJSON($json);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Databases/DestroyController.php b/src/Controllers/Server/Databases/DestroyController.php
index 1630122d85..93bbaf9404 100644
--- a/src/Controllers/Server/Databases/DestroyController.php
+++ b/src/Controllers/Server/Databases/DestroyController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\Config;
use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -35,7 +36,7 @@ final class DestroyController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['selected'] ??= null;
$GLOBALS['errorUrl'] ??= null;
@@ -53,7 +54,7 @@ final class DestroyController extends AbstractController
$this->response->setRequestStatus($message->isSuccess());
$this->response->addJSON($json);
- return;
+ return null;
}
if (
@@ -65,7 +66,7 @@ final class DestroyController extends AbstractController
$this->response->setRequestStatus($message->isSuccess());
$this->response->addJSON($json);
- return;
+ return null;
}
$GLOBALS['errorUrl'] = Url::getFromRoute('/server/databases');
@@ -94,5 +95,7 @@ final class DestroyController extends AbstractController
$json = ['message' => $message];
$this->response->setRequestStatus($message->isSuccess());
$this->response->addJSON($json);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/DatabasesController.php b/src/Controllers/Server/DatabasesController.php
index 2e8f6bb66f..2268e59ea6 100644
--- a/src/Controllers/Server/DatabasesController.php
+++ b/src/Controllers/Server/DatabasesController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Dbal\ConnectionType;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\LanguageManager;
use PhpMyAdmin\Query\Utilities;
@@ -68,7 +69,7 @@ class DatabasesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
@@ -167,6 +168,8 @@ class DatabasesController extends AbstractController
'is_drop_allowed' => $this->dbi->isSuperUser() || $config->settings['AllowUserDropDatabase'],
'text_dir' => LanguageManager::$textDir,
]);
+
+ return null;
}
/**
diff --git a/src/Controllers/Server/EnginesController.php b/src/Controllers/Server/EnginesController.php
index 76aa170fb6..0977f44edf 100644
--- a/src/Controllers/Server/EnginesController.php
+++ b/src/Controllers/Server/EnginesController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Server;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\StorageEngine;
@@ -22,7 +23,7 @@ class EnginesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] = Url::getFromRoute('/');
@@ -31,5 +32,7 @@ class EnginesController extends AbstractController
}
$this->render('server/engines/index', ['engines' => StorageEngine::getStorageEngines()]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/ExportController.php b/src/Controllers/Server/ExportController.php
index 2929ecfde1..0ebaf3b323 100644
--- a/src/Controllers/Server/ExportController.php
+++ b/src/Controllers/Server/ExportController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Export\Options;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\Plugins;
@@ -31,7 +32,7 @@ final class ExportController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['unlim_num_rows'] ??= null;
$GLOBALS['errorUrl'] = Url::getFromRoute('/');
@@ -72,7 +73,7 @@ final class ExportController extends AbstractController
__('Could not load export plugins, please check your installation!'),
)->getDisplay());
- return;
+ return null;
}
$options = $this->export->getOptions(
@@ -90,5 +91,7 @@ final class ExportController extends AbstractController
'page_settings_html' => $pageSettingsHtml,
'databases' => $databases,
]));
+
+ return null;
}
}
diff --git a/src/Controllers/Server/ImportController.php b/src/Controllers/Server/ImportController.php
index 18e02bd5be..2ef1ee8ce0 100644
--- a/src/Controllers/Server/ImportController.php
+++ b/src/Controllers/Server/ImportController.php
@@ -11,6 +11,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Encoding;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Import\Ajax;
use PhpMyAdmin\Import\Import;
@@ -37,7 +38,7 @@ final class ImportController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['SESSION_KEY'] ??= null;
$GLOBALS['errorUrl'] ??= null;
@@ -63,7 +64,7 @@ final class ImportController extends AbstractController
'Could not load import plugins, please check your installation!',
))->getDisplay());
- return;
+ return null;
}
$offset = null;
@@ -120,5 +121,7 @@ final class ImportController extends AbstractController
'user_upload_dir' => Util::userDir($config->settings['UploadDir'] ?? ''),
'local_files' => Import::getLocalFiles($importList),
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/PluginsController.php b/src/Controllers/Server/PluginsController.php
index d2222c7f1c..746832ad41 100644
--- a/src/Controllers/Server/PluginsController.php
+++ b/src/Controllers/Server/PluginsController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Server;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Server\Plugins;
@@ -31,7 +32,7 @@ class PluginsController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] = Url::getFromRoute('/');
@@ -59,5 +60,7 @@ class PluginsController extends AbstractController
}
$this->render('server/plugins/index', ['plugins' => $plugins, 'clean_types' => $cleanTypes]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Privileges/AccountLockController.php b/src/Controllers/Server/Privileges/AccountLockController.php
index 321118f55f..81ec452757 100644
--- a/src/Controllers/Server/Privileges/AccountLockController.php
+++ b/src/Controllers/Server/Privileges/AccountLockController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Server\Privileges;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Controllers\AbstractController;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -22,10 +23,10 @@ final class AccountLockController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->isAjax()) {
- return;
+ return null;
}
/** @var string $userName */
@@ -40,12 +41,14 @@ final class AccountLockController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON(['message' => Message::error($exception->getMessage())]);
- return;
+ return null;
}
$message = Message::success(__('The account %s@%s has been successfully locked.'));
$message->addParam($userName);
$message->addParam($hostName);
$this->response->addJSON(['message' => $message]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Privileges/AccountUnlockController.php b/src/Controllers/Server/Privileges/AccountUnlockController.php
index d9ecba5e75..bad69bf071 100644
--- a/src/Controllers/Server/Privileges/AccountUnlockController.php
+++ b/src/Controllers/Server/Privileges/AccountUnlockController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Server\Privileges;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Controllers\AbstractController;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -22,10 +23,10 @@ final class AccountUnlockController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->isAjax()) {
- return;
+ return null;
}
/** @var string $userName */
@@ -40,12 +41,14 @@ final class AccountUnlockController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON(['message' => Message::error($exception->getMessage())]);
- return;
+ return null;
}
$message = Message::success(__('The account %s@%s has been successfully unlocked.'));
$message->addParam($userName);
$message->addParam($hostName);
$this->response->addJSON(['message' => $message]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/PrivilegesController.php b/src/Controllers/Server/PrivilegesController.php
index 58b79abbb1..be09637ace 100644
--- a/src/Controllers/Server/PrivilegesController.php
+++ b/src/Controllers/Server/PrivilegesController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\LanguageManager;
use PhpMyAdmin\Message;
@@ -42,7 +43,7 @@ class PrivilegesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
$GLOBALS['message'] ??= null;
@@ -106,7 +107,7 @@ class PrivilegesController extends AbstractController
->getDisplay(),
);
- return;
+ return null;
}
if (! $isGrantUser && ! $isCreateUser) {
@@ -135,7 +136,7 @@ class PrivilegesController extends AbstractController
);
$this->response->setRequestStatus(false);
- return;
+ return null;
}
/**
@@ -300,7 +301,7 @@ class PrivilegesController extends AbstractController
$this->response->addJSON('message', $GLOBALS['message']);
$this->response->addJSON($extraData);
- return;
+ return null;
}
}
@@ -331,7 +332,7 @@ class PrivilegesController extends AbstractController
$this->response->addJSON('message', $export);
$this->response->addJSON('title', $title);
- return;
+ return null;
}
$this->response->addHTML('
' . $title . '
' . $export);
@@ -395,10 +396,12 @@ class PrivilegesController extends AbstractController
}
if ($relationParameters->configurableMenusFeature === null) {
- return;
+ return null;
}
$this->response->addHTML('');
+
+ return null;
}
private function getExportPageTitle(string $username, string $hostname, array|null $selectedUsers): string
diff --git a/src/Controllers/Server/ReplicationController.php b/src/Controllers/Server/ReplicationController.php
index 429ca2418b..82bc0afecc 100644
--- a/src/Controllers/Server/ReplicationController.php
+++ b/src/Controllers/Server/ReplicationController.php
@@ -9,6 +9,7 @@ namespace PhpMyAdmin\Controllers\Server;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Replication\ReplicationGui;
use PhpMyAdmin\Replication\ReplicationInfo;
@@ -32,7 +33,7 @@ class ReplicationController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['urlParams'] ??= null;
$GLOBALS['errorUrl'] ??= null;
@@ -134,5 +135,7 @@ class ReplicationController extends AbstractController
'replica_configuration_html' => $replicaConfigurationHtml ?? '',
'change_primary_html' => $changePrimaryHtml ?? '',
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/ShowEngineController.php b/src/Controllers/Server/ShowEngineController.php
index 3222a5b066..9be262cf71 100644
--- a/src/Controllers/Server/ShowEngineController.php
+++ b/src/Controllers/Server/ShowEngineController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Server;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\StorageEngine;
@@ -28,7 +29,7 @@ final class ShowEngineController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->setEngineAndPageProperties($request->getAttribute('routeVars'));
@@ -54,6 +55,8 @@ final class ShowEngineController extends AbstractController
}
$this->render('server/engines/show', ['engine' => $engine, 'page' => $this->page]);
+
+ return null;
}
private function setEngineAndPageProperties(mixed $routeVars): void
diff --git a/src/Controllers/Server/SqlController.php b/src/Controllers/Server/SqlController.php
index c42abbfd3b..459feb919a 100644
--- a/src/Controllers/Server/SqlController.php
+++ b/src/Controllers/Server/SqlController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Server;
use PhpMyAdmin\Config\PageSettings;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\SqlQueryForm;
@@ -28,7 +29,7 @@ class SqlController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
@@ -44,5 +45,7 @@ class SqlController extends AbstractController
}
$this->response->addHTML($this->sqlQueryForm->getHtml('', ''));
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Status/AdvisorController.php b/src/Controllers/Server/Status/AdvisorController.php
index af825c925d..689d365dc5 100644
--- a/src/Controllers/Server/Status/AdvisorController.php
+++ b/src/Controllers/Server/Status/AdvisorController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Server\Status;
use PhpMyAdmin\Advisory\Advisor;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Server\Status\Data;
@@ -20,7 +21,7 @@ class AdvisorController extends AbstractController
parent::__construct($response, $template, $data);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$data = [];
if ($this->data->dataLoaded) {
@@ -28,5 +29,7 @@ class AdvisorController extends AbstractController
}
$this->render('server/status/advisor/index', ['data' => $data]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Status/Monitor/ChartingDataController.php b/src/Controllers/Server/Status/Monitor/ChartingDataController.php
index d20da58025..fc09638ef1 100644
--- a/src/Controllers/Server/Status/Monitor/ChartingDataController.php
+++ b/src/Controllers/Server/Status/Monitor/ChartingDataController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Server\Status\Monitor;
use PhpMyAdmin\Controllers\Server\Status\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Server\Status\Data;
@@ -25,7 +26,7 @@ final class ChartingDataController extends AbstractController
parent::__construct($response, $template, $data);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
@@ -37,9 +38,11 @@ final class ChartingDataController extends AbstractController
}
if (! $request->isAjax()) {
- return;
+ return null;
}
$this->response->addJSON(['message' => $this->monitor->getJsonForChartingData($requiredData)]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Status/Monitor/GeneralLogController.php b/src/Controllers/Server/Status/Monitor/GeneralLogController.php
index e94471af9c..867cc4980a 100644
--- a/src/Controllers/Server/Status/Monitor/GeneralLogController.php
+++ b/src/Controllers/Server/Status/Monitor/GeneralLogController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Server\Status\Monitor;
use PhpMyAdmin\Controllers\Server\Status\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Server\Status\Data;
@@ -25,7 +26,7 @@ final class GeneralLogController extends AbstractController
parent::__construct($response, $template, $data);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
@@ -36,7 +37,7 @@ final class GeneralLogController extends AbstractController
}
if (! $request->isAjax()) {
- return;
+ return null;
}
$data = $this->monitor->getJsonForLogDataTypeGeneral(
@@ -48,9 +49,11 @@ final class GeneralLogController extends AbstractController
if ($data === null) {
$this->response->setRequestStatus(false);
- return;
+ return null;
}
$this->response->addJSON(['message' => $data]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Status/Monitor/LogVarsController.php b/src/Controllers/Server/Status/Monitor/LogVarsController.php
index b921a0dbad..4df5e4fa2e 100644
--- a/src/Controllers/Server/Status/Monitor/LogVarsController.php
+++ b/src/Controllers/Server/Status/Monitor/LogVarsController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Server\Status\Monitor;
use PhpMyAdmin\Controllers\Server\Status\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Server\Status\Data;
@@ -25,7 +26,7 @@ final class LogVarsController extends AbstractController
parent::__construct($response, $template, $data);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
@@ -36,7 +37,7 @@ final class LogVarsController extends AbstractController
}
if (! $request->isAjax()) {
- return;
+ return null;
}
$this->response->addJSON([
@@ -45,5 +46,7 @@ final class LogVarsController extends AbstractController
$request->getParsedBodyParam('varValue'),
),
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Status/Monitor/QueryAnalyzerController.php b/src/Controllers/Server/Status/Monitor/QueryAnalyzerController.php
index b81c5ab42e..843e3b2ac7 100644
--- a/src/Controllers/Server/Status/Monitor/QueryAnalyzerController.php
+++ b/src/Controllers/Server/Status/Monitor/QueryAnalyzerController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Server\Status\Monitor;
use PhpMyAdmin\Controllers\Server\Status\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Server\Status\Data;
@@ -25,7 +26,7 @@ final class QueryAnalyzerController extends AbstractController
parent::__construct($response, $template, $data);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
@@ -36,7 +37,7 @@ final class QueryAnalyzerController extends AbstractController
}
if (! $request->isAjax()) {
- return;
+ return null;
}
$this->response->addJSON([
@@ -45,5 +46,7 @@ final class QueryAnalyzerController extends AbstractController
$request->getParsedBodyParam('query', ''),
),
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Status/Monitor/SlowLogController.php b/src/Controllers/Server/Status/Monitor/SlowLogController.php
index b733ec8e65..be04507deb 100644
--- a/src/Controllers/Server/Status/Monitor/SlowLogController.php
+++ b/src/Controllers/Server/Status/Monitor/SlowLogController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Server\Status\Monitor;
use PhpMyAdmin\Controllers\Server\Status\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Server\Status\Data;
@@ -25,7 +26,7 @@ final class SlowLogController extends AbstractController
parent::__construct($response, $template, $data);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
@@ -36,7 +37,7 @@ final class SlowLogController extends AbstractController
}
if (! $request->isAjax()) {
- return;
+ return null;
}
$data = $this->monitor->getJsonForLogDataTypeSlow(
@@ -46,9 +47,11 @@ final class SlowLogController extends AbstractController
if ($data === null) {
$this->response->setRequestStatus(false);
- return;
+ return null;
}
$this->response->addJSON(['message' => $data]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Status/MonitorController.php b/src/Controllers/Server/Status/MonitorController.php
index 4a051db273..6e8b3e9af0 100644
--- a/src/Controllers/Server/Status/MonitorController.php
+++ b/src/Controllers/Server/Status/MonitorController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Server\Status;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Server\Status\Data;
@@ -26,7 +27,7 @@ class MonitorController extends AbstractController
parent::__construct($response, $template, $data);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] = Url::getFromRoute('/');
@@ -70,5 +71,7 @@ class MonitorController extends AbstractController
'javascript_variable_names' => $javascriptVariableNames,
'form' => $form,
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Status/Processes/KillController.php b/src/Controllers/Server/Status/Processes/KillController.php
index 11eb226c4f..ee50dae48b 100644
--- a/src/Controllers/Server/Status/Processes/KillController.php
+++ b/src/Controllers/Server/Status/Processes/KillController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Server\Status\Processes;
use PhpMyAdmin\Controllers\Server\Status\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -27,10 +28,10 @@ final class KillController extends AbstractController
parent::__construct($response, $template, $data);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->isAjax()) {
- return;
+ return null;
}
$processId = $this->getProcessId($request->getAttribute('routeVars'));
@@ -53,6 +54,8 @@ final class KillController extends AbstractController
$message->addParam($processId);
$this->response->addJSON(['message' => $message]);
+
+ return null;
}
private function getProcessId(mixed $routeVars): int
diff --git a/src/Controllers/Server/Status/Processes/RefreshController.php b/src/Controllers/Server/Status/Processes/RefreshController.php
index d94337a6e0..d9bf68c38b 100644
--- a/src/Controllers/Server/Status/Processes/RefreshController.php
+++ b/src/Controllers/Server/Status/Processes/RefreshController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Server\Status\Processes;
use PhpMyAdmin\Controllers\Server\Status\AbstractController;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Server\Status\Data;
@@ -22,10 +23,10 @@ final class RefreshController extends AbstractController
parent::__construct($response, $template, $data);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->isAjax()) {
- return;
+ return null;
}
$this->render('server/status/processes/list', $this->processes->getList(
@@ -34,5 +35,7 @@ final class RefreshController extends AbstractController
(string) $request->getParsedBodyParam('order_by_field', ''),
(string) $request->getParsedBodyParam('sort_order', ''),
));
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Status/ProcessesController.php b/src/Controllers/Server/Status/ProcessesController.php
index bcb09b664f..3fbff15c50 100644
--- a/src/Controllers/Server/Status/ProcessesController.php
+++ b/src/Controllers/Server/Status/ProcessesController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Server\Status;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Server\Status\Data;
@@ -24,7 +25,7 @@ class ProcessesController extends AbstractController
parent::__construct($response, $template, $data);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] = Url::getFromRoute('/');
@@ -59,5 +60,7 @@ class ProcessesController extends AbstractController
'is_checked' => $showExecuting,
'server_process_list' => $listHtml,
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Status/QueriesController.php b/src/Controllers/Server/Status/QueriesController.php
index eb05aab3c5..d83bb369dc 100644
--- a/src/Controllers/Server/Status/QueriesController.php
+++ b/src/Controllers/Server/Status/QueriesController.php
@@ -8,6 +8,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Server\Status;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Server\Status\Data;
@@ -36,7 +37,7 @@ class QueriesController extends AbstractController
parent::__construct($response, $template, $data);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] = Url::getFromRoute('/');
@@ -99,5 +100,7 @@ class QueriesController extends AbstractController
'queries' => $queries ?? [],
'chart_data' => $chartData,
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Server/Status/StatusController.php b/src/Controllers/Server/Status/StatusController.php
index 224b5c7ca3..105e56304a 100644
--- a/src/Controllers/Server/Status/StatusController.php
+++ b/src/Controllers/Server/Status/StatusController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Server\Status;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Replication\ReplicationGui;
use PhpMyAdmin\ResponseRenderer;
@@ -31,7 +32,7 @@ class StatusController extends AbstractController
parent::__construct($response, $template, $data);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] = Url::getFromRoute('/');
@@ -89,6 +90,8 @@ class StatusController extends AbstractController
'is_replica' => $replicaInfo['status'],
'replication' => $replication,
]);
+
+ return null;
}
private function getStartTime(): int
diff --git a/src/Controllers/Server/Status/VariablesController.php b/src/Controllers/Server/Status/VariablesController.php
index 9b6530ebe3..dcf6ad8a02 100644
--- a/src/Controllers/Server/Status/VariablesController.php
+++ b/src/Controllers/Server/Status/VariablesController.php
@@ -9,6 +9,7 @@ namespace PhpMyAdmin\Controllers\Server\Status;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Server\Status\Data;
@@ -31,7 +32,7 @@ class VariablesController extends AbstractController
parent::__construct($response, $template, $data);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
@@ -127,6 +128,8 @@ class VariablesController extends AbstractController
'links' => $links ?? [],
'variables' => $variables ?? [],
]);
+
+ return null;
}
/**
diff --git a/src/Controllers/Server/UserGroupsController.php b/src/Controllers/Server/UserGroupsController.php
index cf99b497d6..a8af16a5a5 100644
--- a/src/Controllers/Server/UserGroupsController.php
+++ b/src/Controllers/Server/UserGroupsController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\ConfigStorage\UserGroups;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -30,11 +31,11 @@ class UserGroupsController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$configurableMenusFeature = $this->relation->getRelationParameters()->configurableMenusFeature;
if ($configurableMenusFeature === null) {
- return;
+ return null;
}
$this->addScriptFiles(['server/user_groups.js']);
@@ -47,7 +48,7 @@ class UserGroupsController extends AbstractController
Message::error(__('No Privileges'))->getDisplay(),
);
- return;
+ return null;
}
$this->response->addHTML('
');
@@ -99,5 +100,7 @@ class UserGroupsController extends AbstractController
}
$this->response->addHTML('
');
+
+ return null;
}
}
diff --git a/src/Controllers/Server/UserGroupsFormController.php b/src/Controllers/Server/UserGroupsFormController.php
index 011d1e7ab7..ca98c31848 100644
--- a/src/Controllers/Server/UserGroupsFormController.php
+++ b/src/Controllers/Server/UserGroupsFormController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Dbal\ConnectionType;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -29,10 +30,10 @@ final class UserGroupsFormController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->isAjax()) {
- return;
+ return null;
}
/** @var string $username */
@@ -43,7 +44,7 @@ final class UserGroupsFormController extends AbstractController
$this->response->setStatusCode(StatusCodeInterface::STATUS_BAD_REQUEST);
$this->response->addJSON('message', __('Missing parameter:') . ' username');
- return;
+ return null;
}
$configurableMenusFeature = $this->relation->getRelationParameters()->configurableMenusFeature;
@@ -52,12 +53,14 @@ final class UserGroupsFormController extends AbstractController
$this->response->setStatusCode(StatusCodeInterface::STATUS_BAD_REQUEST);
$this->response->addJSON('message', __('User groups management is not enabled.'));
- return;
+ return null;
}
$form = $this->getHtmlToChooseUserGroup($username, $configurableMenusFeature);
$this->response->addJSON('message', $form);
+
+ return null;
}
/**
diff --git a/src/Controllers/Server/Variables/GetVariableController.php b/src/Controllers/Server/Variables/GetVariableController.php
index 2b02b37f07..ddc5f460aa 100644
--- a/src/Controllers/Server/Variables/GetVariableController.php
+++ b/src/Controllers/Server/Variables/GetVariableController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Server\Variables;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Providers\ServerVariables\ServerVariablesProvider;
use PhpMyAdmin\ResponseRenderer;
@@ -23,10 +24,10 @@ final class GetVariableController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->isAjax()) {
- return;
+ return null;
}
$name = $this->getName($request->getAttribute('routeVars'));
@@ -50,6 +51,8 @@ final class GetVariableController extends AbstractController
}
$this->response->addJSON($json);
+
+ return null;
}
private function getName(mixed $routeVars): string
diff --git a/src/Controllers/Server/Variables/SetVariableController.php b/src/Controllers/Server/Variables/SetVariableController.php
index 4b30c90609..df9e2e1ed8 100644
--- a/src/Controllers/Server/Variables/SetVariableController.php
+++ b/src/Controllers/Server/Variables/SetVariableController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Server\Variables;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Providers\ServerVariables\ServerVariablesProvider;
use PhpMyAdmin\ResponseRenderer;
@@ -32,10 +33,10 @@ final class SetVariableController extends AbstractController
/**
* Handle the AJAX request for setting value for a single variable
*/
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->isAjax()) {
- return;
+ return null;
}
$value = (string) $request->getParsedBodyParam('varValue');
@@ -79,6 +80,8 @@ final class SetVariableController extends AbstractController
}
$this->response->addJSON($json);
+
+ return null;
}
/**
diff --git a/src/Controllers/Server/VariablesController.php b/src/Controllers/Server/VariablesController.php
index 77a92f274a..7afa1bc4ce 100644
--- a/src/Controllers/Server/VariablesController.php
+++ b/src/Controllers/Server/VariablesController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Server;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Providers\ServerVariables\ServerVariablesProvider;
use PhpMyAdmin\ResponseRenderer;
@@ -31,7 +32,7 @@ class VariablesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] = Url::getFromRoute('/');
@@ -89,6 +90,8 @@ class VariablesController extends AbstractController
'is_superuser' => $this->dbi->isSuperUser(),
'is_mariadb' => $this->dbi->isMariaDB(),
]);
+
+ return null;
}
/**
diff --git a/src/Controllers/Setup/MainController.php b/src/Controllers/Setup/MainController.php
index 6b74caacef..71bc2703ff 100644
--- a/src/Controllers/Setup/MainController.php
+++ b/src/Controllers/Setup/MainController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Setup;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Config;
use PhpMyAdmin\Console;
+use PhpMyAdmin\Controllers\InvocableController;
use PhpMyAdmin\Header;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Http\Response;
@@ -21,7 +22,7 @@ use function in_array;
use const CONFIG_FILE;
-final class MainController
+final class MainController implements InvocableController
{
public function __construct(
private readonly ResponseFactory $responseFactory,
diff --git a/src/Controllers/Setup/ShowConfigController.php b/src/Controllers/Setup/ShowConfigController.php
index 7cd0be7038..9a6fe7f535 100644
--- a/src/Controllers/Setup/ShowConfigController.php
+++ b/src/Controllers/Setup/ShowConfigController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Setup;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Config\Forms\Setup\ConfigForm;
+use PhpMyAdmin\Controllers\InvocableController;
use PhpMyAdmin\Core;
use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
@@ -15,7 +16,7 @@ use PhpMyAdmin\Url;
use function is_string;
-final class ShowConfigController
+final class ShowConfigController implements InvocableController
{
public function __invoke(ServerRequest $request): Response
{
diff --git a/src/Controllers/Setup/ValidateController.php b/src/Controllers/Setup/ValidateController.php
index b8827fc652..0e0d900356 100644
--- a/src/Controllers/Setup/ValidateController.php
+++ b/src/Controllers/Setup/ValidateController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Setup;
use PhpMyAdmin\Config\Validator;
+use PhpMyAdmin\Controllers\InvocableController;
use PhpMyAdmin\Core;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Http\Response;
@@ -19,7 +20,7 @@ use function json_decode;
use function json_encode;
use function sprintf;
-final class ValidateController
+final class ValidateController implements InvocableController
{
public function __construct(private readonly ResponseFactory $responseFactory)
{
diff --git a/src/Controllers/Sql/ColumnPreferencesController.php b/src/Controllers/Sql/ColumnPreferencesController.php
index 65b884e5c0..9c6ddc9a1f 100644
--- a/src/Controllers/Sql/ColumnPreferencesController.php
+++ b/src/Controllers/Sql/ColumnPreferencesController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Sql;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -28,7 +29,7 @@ final class ColumnPreferencesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$tableObject = $this->dbi->getTable(Current::$database, Current::$table);
$status = false;
@@ -54,9 +55,11 @@ final class ColumnPreferencesController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $status->getString());
- return;
+ return null;
}
$this->response->setRequestStatus($status);
+
+ return null;
}
}
diff --git a/src/Controllers/Sql/DefaultForeignKeyCheckValueController.php b/src/Controllers/Sql/DefaultForeignKeyCheckValueController.php
index 2d8c1a9c82..69ff9e8373 100644
--- a/src/Controllers/Sql/DefaultForeignKeyCheckValueController.php
+++ b/src/Controllers/Sql/DefaultForeignKeyCheckValueController.php
@@ -5,13 +5,16 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Sql;
use PhpMyAdmin\Controllers\AbstractController;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Utils\ForeignKey;
final class DefaultForeignKeyCheckValueController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->response->addJSON('default_fk_check_value', ForeignKey::isCheckEnabled());
+
+ return null;
}
}
diff --git a/src/Controllers/Sql/EnumValuesController.php b/src/Controllers/Sql/EnumValuesController.php
index 9ea9a251fc..ceff2327ae 100644
--- a/src/Controllers/Sql/EnumValuesController.php
+++ b/src/Controllers/Sql/EnumValuesController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Sql;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Sql;
@@ -26,7 +27,7 @@ final class EnumValuesController extends AbstractController
/**
* Get possible values for enum fields during grid edit.
*/
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$column = $request->getParsedBodyParam('column');
$currValue = $request->getParsedBodyParam('curr_value');
@@ -36,7 +37,7 @@ final class EnumValuesController extends AbstractController
$this->response->addJSON('message', __('Error in processing request'));
$this->response->setRequestStatus(false);
- return;
+ return null;
}
$dropdown = $this->template->render('sql/enum_column_dropdown', [
@@ -45,5 +46,7 @@ final class EnumValuesController extends AbstractController
]);
$this->response->addJSON('dropdown', $dropdown);
+
+ return null;
}
}
diff --git a/src/Controllers/Sql/RelationalValuesController.php b/src/Controllers/Sql/RelationalValuesController.php
index bf90961d78..1baaa891e9 100644
--- a/src/Controllers/Sql/RelationalValuesController.php
+++ b/src/Controllers/Sql/RelationalValuesController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Sql;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Sql;
@@ -26,7 +27,7 @@ final class RelationalValuesController extends AbstractController
*
* During grid edit, if we have a relational field, show the dropdown for it.
*/
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$column = $request->getParsedBodyParam('column');
$relationKeyOrDisplayColumn = $request->getParsedBodyParam('relation_key_or_display_column');
@@ -44,5 +45,7 @@ final class RelationalValuesController extends AbstractController
(string) $currValue,
);
$this->response->addJSON('dropdown', $dropdown);
+
+ return null;
}
}
diff --git a/src/Controllers/Sql/SetValuesController.php b/src/Controllers/Sql/SetValuesController.php
index ba477471f4..d96b3df379 100644
--- a/src/Controllers/Sql/SetValuesController.php
+++ b/src/Controllers/Sql/SetValuesController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Sql;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Sql;
@@ -27,7 +28,7 @@ final class SetValuesController extends AbstractController
/**
* Get possible values for SET fields during grid edit.
*/
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$column = $request->getParsedBodyParam('column');
$currentValue = $request->getParsedBodyParam('curr_value');
@@ -39,7 +40,7 @@ final class SetValuesController extends AbstractController
$this->response->addJSON('message', __('Error in processing request'));
$this->response->setRequestStatus(false);
- return;
+ return null;
}
// If the $currentValue was truncated, we should fetch the correct full values from the table.
@@ -58,5 +59,7 @@ final class SetValuesController extends AbstractController
]);
$this->response->addJSON('select', $select);
+
+ return null;
}
}
diff --git a/src/Controllers/Sql/SqlController.php b/src/Controllers/Sql/SqlController.php
index d1998b0384..055155d8f9 100644
--- a/src/Controllers/Sql/SqlController.php
+++ b/src/Controllers/Sql/SqlController.php
@@ -12,6 +12,7 @@ use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ParseAnalyze;
@@ -39,7 +40,7 @@ class SqlController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['display_query'] ??= null;
$GLOBALS['ajax_reload'] ??= null;
@@ -128,7 +129,7 @@ class SqlController extends AbstractController
// set $goto to what will be displayed if query returns 0 rows
$GLOBALS['goto'] = '';
} elseif (! $this->checkParameters(['sql_query'])) {
- return;
+ return null;
}
/**
@@ -173,7 +174,7 @@ class SqlController extends AbstractController
if ($storeBkm && $bkmFields !== null) {
$this->addBookmark($GLOBALS['goto'], $bkmFields, (bool) $bkmAllUsers);
- return;
+ return null;
}
/**
@@ -202,6 +203,8 @@ class SqlController extends AbstractController
$GLOBALS['sql_query'],
$GLOBALS['complete_query'] ?? null,
));
+
+ return null;
}
/** @param array
$bkmFields */
diff --git a/src/Controllers/Table/AddFieldController.php b/src/Controllers/Table/AddFieldController.php
index 3112a09bee..d976a1e4d4 100644
--- a/src/Controllers/Table/AddFieldController.php
+++ b/src/Controllers/Table/AddFieldController.php
@@ -12,6 +12,7 @@ use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -48,7 +49,7 @@ class AddFieldController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
$GLOBALS['message'] ??= null;
@@ -59,7 +60,7 @@ class AddFieldController extends AbstractController
$this->addScriptFiles(['table/structure.js']);
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$userPrivileges = $this->userPrivilegesFactory->getPrivileges();
@@ -94,7 +95,7 @@ class AddFieldController extends AbstractController
if (isset($_POST['preview_sql'])) {
Core::previewSQL($GLOBALS['sql_query']);
- return;
+ return null;
}
$result = $createAddField->tryColumnCreationQuery(
@@ -108,7 +109,7 @@ class AddFieldController extends AbstractController
$this->response->addHTML($errorMessageHtml ?? '');
$this->response->setRequestStatus(false);
- return;
+ return null;
}
// Update comment table for mime types [MIME]
@@ -151,7 +152,7 @@ class AddFieldController extends AbstractController
]),
);
- return;
+ return null;
}
$urlParams = ['db' => Current::$database, 'table' => Current::$table];
@@ -164,12 +165,12 @@ class AddFieldController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -178,22 +179,24 @@ class AddFieldController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
$this->addScriptFiles(['vendor/jquery/jquery.uitablefilter.js']);
if (! $this->checkParameters(['server', 'db', 'table'])) {
- return;
+ return null;
}
$templateData = $this->columnsDefinition->displayForm($userPrivileges, '/table/add-field', $numFields);
$this->render('columns_definitions/column_definitions_form', $templateData);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/ChangeController.php b/src/Controllers/Table/ChangeController.php
index a6cc4a0df2..6072d477a7 100644
--- a/src/Controllers/Table/ChangeController.php
+++ b/src/Controllers/Table/ChangeController.php
@@ -12,6 +12,7 @@ use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -49,7 +50,7 @@ class ChangeController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['disp_message'] ??= null;
$GLOBALS['urlParams'] ??= null;
@@ -68,12 +69,12 @@ class ChangeController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -82,12 +83,12 @@ class ChangeController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
$this->setInsertRowsParam($request->getParsedBodyParam('insert_rows'));
@@ -290,6 +291,8 @@ class ChangeController extends AbstractController
}
$this->response->addHTML($htmlOutput);
+
+ return null;
}
/**
diff --git a/src/Controllers/Table/ChangeRowsController.php b/src/Controllers/Table/ChangeRowsController.php
index 19bc922a48..cca4a760ad 100644
--- a/src/Controllers/Table/ChangeRowsController.php
+++ b/src/Controllers/Table/ChangeRowsController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Table;
use PhpMyAdmin\Controllers\AbstractController;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -23,7 +24,7 @@ final class ChangeRowsController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['where_clause'] ??= null;
@@ -36,7 +37,7 @@ final class ChangeRowsController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No row selected.'));
- return;
+ return null;
}
// As we got the rows to be edited from the
@@ -49,5 +50,7 @@ final class ChangeRowsController extends AbstractController
}
($this->changeController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/ChartController.php b/src/Controllers/Table/ChartController.php
index 71b6e62729..43c8ce82e1 100644
--- a/src/Controllers/Table/ChartController.php
+++ b/src/Controllers/Table/ChartController.php
@@ -11,6 +11,7 @@ use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\FieldMetadata;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -43,18 +44,18 @@ class ChartController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
if (isset($_REQUEST['pos'], $_REQUEST['session_max_rows']) && $request->isAjax()) {
if (Current::$table !== '' && Current::$database !== '' && ! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$this->ajax($request);
- return;
+ return null;
}
// Throw error if no sql query is set
@@ -64,7 +65,7 @@ class ChartController extends AbstractController
Message::error(__('No SQL query was set to fetch data.'))->getDisplay(),
);
- return;
+ return null;
}
$this->addScriptFiles([
@@ -90,7 +91,7 @@ class ChartController extends AbstractController
*/
if (Current::$table !== '') {
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$urlParams = ['db' => Current::$database, 'table' => Current::$table];
@@ -103,12 +104,12 @@ class ChartController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -117,12 +118,12 @@ class ChartController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
$urlParams['goto'] = Util::getScriptNameForOption($config->settings['DefaultTabTable'], 'table');
@@ -133,7 +134,7 @@ class ChartController extends AbstractController
$urlParams['back'] = Url::getFromRoute('/sql');
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$GLOBALS['errorUrl'] = Util::getScriptNameForOption($config->settings['DefaultTabDatabase'], 'database');
@@ -145,12 +146,12 @@ class ChartController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
} else {
$urlParams['goto'] = Util::getScriptNameForOption($config->settings['DefaultTabServer'], 'server');
@@ -190,7 +191,7 @@ class ChartController extends AbstractController
__('No numeric columns present in the table to plot.'),
);
- return;
+ return null;
}
$urlParams['db'] = Current::$database;
@@ -208,6 +209,8 @@ class ChartController extends AbstractController
'table_has_a_numeric_column' => true,
'start_and_number_of_rows_fieldset' => $startAndNumberOfRowsFieldset,
]);
+
+ return null;
}
/**
diff --git a/src/Controllers/Table/CreateController.php b/src/Controllers/Table/CreateController.php
index d19ec01c1b..986520f6a9 100644
--- a/src/Controllers/Table/CreateController.php
+++ b/src/Controllers/Table/CreateController.php
@@ -11,6 +11,7 @@ use PhpMyAdmin\CreateAddField;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table\ColumnsDefinition;
@@ -44,10 +45,10 @@ class CreateController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$userPrivileges = $this->userPrivilegesFactory->getPrivileges();
@@ -105,7 +106,7 @@ class CreateController extends AbstractController
if (isset($_POST['preview_sql'])) {
Core::previewSQL($GLOBALS['sql_query']);
- return;
+ return null;
}
// Executes the query
@@ -139,7 +140,7 @@ class CreateController extends AbstractController
$this->response->addJSON('message', $this->dbi->getError());
}
- return;
+ return null;
}
// Do not display the table in the header since it hasn't been created yet
@@ -148,12 +149,14 @@ class CreateController extends AbstractController
$this->addScriptFiles(['vendor/jquery/jquery.uitablefilter.js']);
if (! $this->checkParameters(['server', 'db'])) {
- return;
+ return null;
}
$templateData = $this->columnsDefinition->displayForm($userPrivileges, '/table/create', $numFields);
$this->render('columns_definitions/column_definitions_form', $templateData);
+
+ return null;
}
/**
diff --git a/src/Controllers/Table/DeleteConfirmController.php b/src/Controllers/Table/DeleteConfirmController.php
index cfba4a22f8..eda3b93238 100644
--- a/src/Controllers/Table/DeleteConfirmController.php
+++ b/src/Controllers/Table/DeleteConfirmController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DbTableExists;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -31,7 +32,7 @@ final class DeleteConfirmController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['urlParams'] ??= null;
$GLOBALS['errorUrl'] ??= null;
@@ -42,11 +43,11 @@ final class DeleteConfirmController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No row selected.'));
- return;
+ return null;
}
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$GLOBALS['urlParams'] = ['db' => Current::$database, 'table' => Current::$table];
@@ -62,12 +63,12 @@ final class DeleteConfirmController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -76,12 +77,12 @@ final class DeleteConfirmController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
$this->render('table/delete/confirm', [
@@ -91,5 +92,7 @@ final class DeleteConfirmController extends AbstractController
'sql_query' => $GLOBALS['sql_query'],
'is_foreign_key_check' => ForeignKey::isCheckEnabled(),
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/DeleteRowsController.php b/src/Controllers/Table/DeleteRowsController.php
index abd1cae39f..1fa40da652 100644
--- a/src/Controllers/Table/DeleteRowsController.php
+++ b/src/Controllers/Table/DeleteRowsController.php
@@ -11,6 +11,7 @@ use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Sql;
@@ -32,7 +33,7 @@ final class DeleteRowsController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['goto'] ??= null;
$GLOBALS['disp_message'] ??= null;
@@ -96,5 +97,7 @@ final class DeleteRowsController extends AbstractController
$GLOBALS['sql_query'],
null,
));
+
+ return null;
}
}
diff --git a/src/Controllers/Table/DropColumnConfirmationController.php b/src/Controllers/Table/DropColumnConfirmationController.php
index b2626056a3..d171ff8cd7 100644
--- a/src/Controllers/Table/DropColumnConfirmationController.php
+++ b/src/Controllers/Table/DropColumnConfirmationController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Table;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DbTableExists;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -28,7 +29,7 @@ final class DropColumnConfirmationController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$fields = $request->getParsedBodyParam('selected_fld');
try {
@@ -38,11 +39,11 @@ final class DropColumnConfirmationController extends AbstractController
} catch (InvalidIdentifier $exception) {
$this->sendErrorResponse($exception->getMessage());
- return;
+ return null;
} catch (InvalidArgumentException) {
$this->sendErrorResponse(__('No column selected.'));
- return;
+ return null;
}
if (! $this->dbTableExists->selectDatabase($db)) {
@@ -50,12 +51,12 @@ final class DropColumnConfirmationController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
if (! $this->dbTableExists->hasTable($db, $table)) {
@@ -63,12 +64,12 @@ final class DropColumnConfirmationController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
$this->render('table/structure/drop_confirm', [
@@ -76,5 +77,7 @@ final class DropColumnConfirmationController extends AbstractController
'table' => $table->getName(),
'fields' => $fields,
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/DropColumnController.php b/src/Controllers/Table/DropColumnController.php
index f6658d2dad..c14298c9ac 100644
--- a/src/Controllers/Table/DropColumnController.php
+++ b/src/Controllers/Table/DropColumnController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\FlashMessages;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -31,7 +32,7 @@ final class DropColumnController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$selected = $_POST['selected'] ?? [];
@@ -39,7 +40,7 @@ final class DropColumnController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No column selected.'));
- return;
+ return null;
}
$selectedCount = count($selected);
@@ -76,5 +77,7 @@ final class DropColumnController extends AbstractController
$this->flash->addMessage($message->isError() ? 'danger' : 'success', $message->getMessage());
$this->redirect('/table/structure', ['db' => Current::$database, 'table' => Current::$table]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/ExportController.php b/src/Controllers/Table/ExportController.php
index cc11332f7f..5ead08f031 100644
--- a/src/Controllers/Table/ExportController.php
+++ b/src/Controllers/Table/ExportController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\Config\PageSettings;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\Export\Options;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\Plugins;
@@ -36,7 +37,7 @@ class ExportController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['urlParams'] ??= null;
$GLOBALS['errorUrl'] ??= null;
@@ -50,7 +51,7 @@ class ExportController extends AbstractController
$this->addScriptFiles(['export.js']);
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$GLOBALS['urlParams'] = ['db' => Current::$database, 'table' => Current::$table];
@@ -105,7 +106,7 @@ class ExportController extends AbstractController
__('Could not load export plugins, please check your installation!'),
)->getDisplay());
- return;
+ return null;
}
$exportType = 'table';
@@ -129,5 +130,7 @@ class ExportController extends AbstractController
'page_settings_error_html' => $pageSettingsErrorHtml,
'page_settings_html' => $pageSettingsHtml,
]));
+
+ return null;
}
}
diff --git a/src/Controllers/Table/ExportRowsController.php b/src/Controllers/Table/ExportRowsController.php
index 32a11a8af2..aaa2884298 100644
--- a/src/Controllers/Table/ExportRowsController.php
+++ b/src/Controllers/Table/ExportRowsController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Table;
use PhpMyAdmin\Controllers\AbstractController;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -23,7 +24,7 @@ final class ExportRowsController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['single_table'] ??= null;
$GLOBALS['where_clause'] ??= null;
@@ -32,7 +33,7 @@ final class ExportRowsController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No row selected.'));
- return;
+ return null;
}
// Needed to allow SQL export
@@ -48,5 +49,7 @@ final class ExportRowsController extends AbstractController
}
($this->exportController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/FindReplaceController.php b/src/Controllers/Table/FindReplaceController.php
index 9a9641cc0b..c889b55810 100644
--- a/src/Controllers/Table/FindReplaceController.php
+++ b/src/Controllers/Table/FindReplaceController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -51,12 +52,12 @@ class FindReplaceController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['urlParams'] ??= null;
$GLOBALS['errorUrl'] ??= null;
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$GLOBALS['urlParams'] = ['db' => Current::$database, 'table' => Current::$table];
@@ -72,12 +73,12 @@ class FindReplaceController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -86,12 +87,12 @@ class FindReplaceController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
$this->loadTableInfo();
@@ -106,7 +107,7 @@ class FindReplaceController extends AbstractController
$preview = $this->getReplacePreview($columnIndex, $find, $replaceWith, $useRegex, $connectionCharSet);
$this->response->addJSON('preview', $preview);
- return;
+ return null;
}
$this->addScriptFiles(['table/find_replace.js']);
@@ -125,6 +126,8 @@ class FindReplaceController extends AbstractController
// Displays the find and replace form
$this->displaySelectionFormAction();
+
+ return null;
}
/**
diff --git a/src/Controllers/Table/GetFieldController.php b/src/Controllers/Table/GetFieldController.php
index 8f0a764ed9..d7d534844f 100644
--- a/src/Controllers/Table/GetFieldController.php
+++ b/src/Controllers/Table/GetFieldController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\Mime;
@@ -35,12 +36,12 @@ class GetFieldController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->response->disable();
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
/* Select database */
@@ -67,7 +68,7 @@ class GetFieldController extends AbstractController
/* l10n: In case a SQL query did not pass a security check */
$this->response->addHTML(Message::error(__('There is an issue with your request.'))->getDisplay());
- return;
+ return null;
}
$transformKey = (string) $request->getQueryParam('transform_key', '');
@@ -84,7 +85,7 @@ class GetFieldController extends AbstractController
$sql,
);
- return;
+ return null;
}
/* Avoid corrupting data */
@@ -96,5 +97,7 @@ class GetFieldController extends AbstractController
mb_strlen($result, '8bit'),
);
echo $result;
+
+ return null;
}
}
diff --git a/src/Controllers/Table/GisVisualizationController.php b/src/Controllers/Table/GisVisualizationController.php
index e3a4842e96..da87a1390e 100644
--- a/src/Controllers/Table/GisVisualizationController.php
+++ b/src/Controllers/Table/GisVisualizationController.php
@@ -13,6 +13,7 @@ use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\FieldMetadata;
use PhpMyAdmin\Gis\GisVisualization;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Message;
@@ -40,10 +41,10 @@ final class GisVisualizationController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$GLOBALS['errorUrl'] = Util::getScriptNameForOption(
@@ -58,12 +59,12 @@ final class GisVisualizationController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
// SQL query for retrieving GIS data
@@ -76,7 +77,7 @@ final class GisVisualizationController extends AbstractController
Message::error(__('No SQL query was set to fetch data.'))->getDisplay(),
);
- return;
+ return null;
}
$meta = $this->getColumnMeta($sqlQuery);
@@ -98,7 +99,7 @@ final class GisVisualizationController extends AbstractController
Message::error(__('No spatial column found for this SQL query.'))->getDisplay(),
);
- return;
+ return null;
}
// Get settings if any posted
@@ -116,7 +117,7 @@ final class GisVisualizationController extends AbstractController
$filename = $visualization->getSpatialColumn();
$visualization->toFile($filename, $_GET['fileFormat']);
- return;
+ return null;
}
$this->addScriptFiles(['vendor/openlayers/OpenLayers.js', 'table/gis_visualization.js']);
@@ -162,6 +163,8 @@ final class GisVisualizationController extends AbstractController
]);
$this->response->addHTML($html);
+
+ return null;
}
/**
diff --git a/src/Controllers/Table/ImportController.php b/src/Controllers/Table/ImportController.php
index 988b5c1c9f..5579c596d6 100644
--- a/src/Controllers/Table/ImportController.php
+++ b/src/Controllers/Table/ImportController.php
@@ -12,6 +12,7 @@ use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Encoding;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -41,7 +42,7 @@ final class ImportController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['urlParams'] ??= null;
$GLOBALS['SESSION_KEY'] ??= null;
@@ -54,7 +55,7 @@ final class ImportController extends AbstractController
$this->addScriptFiles(['import.js']);
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$GLOBALS['urlParams'] = ['db' => Current::$database, 'table' => Current::$table];
@@ -68,12 +69,12 @@ final class ImportController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -82,12 +83,12 @@ final class ImportController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
$GLOBALS['urlParams']['goto'] = Url::getFromRoute('/table/import');
@@ -103,7 +104,7 @@ final class ImportController extends AbstractController
'Could not load import plugins, please check your installation!',
))->getDisplay());
- return;
+ return null;
}
$offset = null;
@@ -164,5 +165,7 @@ final class ImportController extends AbstractController
'user_upload_dir' => Util::userDir($config->settings['UploadDir'] ?? ''),
'local_files' => Import::getLocalFiles($importList),
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/IndexRenameController.php b/src/Controllers/Table/IndexRenameController.php
index 9f9b40c917..86659fb326 100644
--- a/src/Controllers/Table/IndexRenameController.php
+++ b/src/Controllers/Table/IndexRenameController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -35,13 +36,13 @@ final class IndexRenameController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['urlParams'] ??= null;
$GLOBALS['errorUrl'] ??= null;
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$GLOBALS['urlParams'] = ['db' => Current::$database, 'table' => Current::$table];
@@ -57,12 +58,12 @@ final class IndexRenameController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -71,12 +72,12 @@ final class IndexRenameController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
$oldIndexName = $request->getParsedBodyParam('old_index');
@@ -92,7 +93,7 @@ final class IndexRenameController extends AbstractController
$this->render('table/index_rename_form', ['index' => $index, 'form_params' => $formParams]);
- return;
+ return null;
}
// coming already from form
@@ -114,7 +115,7 @@ final class IndexRenameController extends AbstractController
$this->template->render('preview_sql', ['query_data' => $sqlQuery]),
);
- return;
+ return null;
}
$logicError = $this->indexes->getError();
@@ -122,7 +123,7 @@ final class IndexRenameController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $logicError);
- return;
+ return null;
}
$this->dbi->query($sqlQuery);
@@ -145,5 +146,7 @@ final class IndexRenameController extends AbstractController
'indexes_duplicates' => $indexesDuplicates,
]),
);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/IndexesController.php b/src/Controllers/Table/IndexesController.php
index 368d4fd098..2c7773e4f3 100644
--- a/src/Controllers/Table/IndexesController.php
+++ b/src/Controllers/Table/IndexesController.php
@@ -11,6 +11,7 @@ use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -44,14 +45,14 @@ class IndexesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['urlParams'] ??= null;
$GLOBALS['errorUrl'] ??= null;
if (! isset($_POST['create_edit_table'])) {
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$GLOBALS['urlParams'] = ['db' => Current::$database, 'table' => Current::$table];
@@ -67,12 +68,12 @@ class IndexesController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -81,12 +82,12 @@ class IndexesController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
}
@@ -123,7 +124,7 @@ class IndexesController extends AbstractController
$this->template->render('preview_sql', ['query_data' => $sqlQuery]),
);
- return;
+ return null;
}
$logicError = $this->indexes->getError();
@@ -131,7 +132,7 @@ class IndexesController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $logicError);
- return;
+ return null;
}
$this->dbi->query($sqlQuery);
@@ -158,17 +159,19 @@ class IndexesController extends AbstractController
]),
);
- return;
+ return null;
}
/** @var StructureController $controller */
$controller = ContainerBuilder::getContainer()->get(StructureController::class);
$controller($request);
- return;
+ return null;
}
$this->displayForm($index);
+
+ return null;
}
/**
diff --git a/src/Controllers/Table/Maintenance/AnalyzeController.php b/src/Controllers/Table/Maintenance/AnalyzeController.php
index ae6cb41048..c1af92d0d5 100644
--- a/src/Controllers/Table/Maintenance/AnalyzeController.php
+++ b/src/Controllers/Table/Maintenance/AnalyzeController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Maintenance;
use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -32,7 +33,7 @@ final class AnalyzeController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$selectedTablesParam = $request->getParsedBodyParam('selected_tbl');
@@ -44,7 +45,7 @@ final class AnalyzeController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
try {
@@ -58,14 +59,14 @@ final class AnalyzeController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $message->getDisplay());
- return;
+ return null;
}
if ($this->config->get('DisableMultiTableMaintenance') && count($selectedTables) > 1) {
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('Maintenance operations on multiple tables are disabled.'));
- return;
+ return null;
}
[$rows, $query] = $this->model->getAnalyzeTableRows($database, $selectedTables);
@@ -77,5 +78,7 @@ final class AnalyzeController extends AbstractController
);
$this->render('table/maintenance/analyze', ['message' => $message, 'rows' => $rows]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Maintenance/CheckController.php b/src/Controllers/Table/Maintenance/CheckController.php
index 5328e5adaf..7ec546e0db 100644
--- a/src/Controllers/Table/Maintenance/CheckController.php
+++ b/src/Controllers/Table/Maintenance/CheckController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Maintenance;
use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -32,7 +33,7 @@ final class CheckController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$selectedTablesParam = $request->getParsedBodyParam('selected_tbl');
@@ -44,7 +45,7 @@ final class CheckController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
try {
@@ -58,14 +59,14 @@ final class CheckController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $message->getDisplay());
- return;
+ return null;
}
if ($this->config->get('DisableMultiTableMaintenance') && count($selectedTables) > 1) {
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('Maintenance operations on multiple tables are disabled.'));
- return;
+ return null;
}
[$rows, $query] = $this->model->getCheckTableRows($database, $selectedTables);
@@ -83,5 +84,7 @@ final class CheckController extends AbstractController
'rows' => $rows,
'indexes_problems' => $indexesProblems,
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Maintenance/ChecksumController.php b/src/Controllers/Table/Maintenance/ChecksumController.php
index 02a56c12e0..15ac0c29c3 100644
--- a/src/Controllers/Table/Maintenance/ChecksumController.php
+++ b/src/Controllers/Table/Maintenance/ChecksumController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Maintenance;
use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -32,7 +33,7 @@ final class ChecksumController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$selectedTablesParam = $request->getParsedBodyParam('selected_tbl');
@@ -44,7 +45,7 @@ final class ChecksumController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
try {
@@ -58,14 +59,14 @@ final class ChecksumController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $message->getDisplay());
- return;
+ return null;
}
if ($this->config->get('DisableMultiTableMaintenance') && count($selectedTables) > 1) {
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('Maintenance operations on multiple tables are disabled.'));
- return;
+ return null;
}
[$rows, $query, $warnings] = $this->model->getChecksumTableRows($database, $selectedTables);
@@ -77,5 +78,7 @@ final class ChecksumController extends AbstractController
);
$this->render('table/maintenance/checksum', ['message' => $message, 'rows' => $rows, 'warnings' => $warnings]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Maintenance/OptimizeController.php b/src/Controllers/Table/Maintenance/OptimizeController.php
index 21d6ba1418..e753fe6e0f 100644
--- a/src/Controllers/Table/Maintenance/OptimizeController.php
+++ b/src/Controllers/Table/Maintenance/OptimizeController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Maintenance;
use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -32,7 +33,7 @@ final class OptimizeController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$selectedTablesParam = $request->getParsedBodyParam('selected_tbl');
@@ -44,7 +45,7 @@ final class OptimizeController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
try {
@@ -58,14 +59,14 @@ final class OptimizeController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $message->getDisplay());
- return;
+ return null;
}
if ($this->config->get('DisableMultiTableMaintenance') && count($selectedTables) > 1) {
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('Maintenance operations on multiple tables are disabled.'));
- return;
+ return null;
}
[$rows, $query] = $this->model->getOptimizeTableRows($database, $selectedTables);
@@ -77,5 +78,7 @@ final class OptimizeController extends AbstractController
);
$this->render('table/maintenance/optimize', ['message' => $message, 'rows' => $rows]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Maintenance/RepairController.php b/src/Controllers/Table/Maintenance/RepairController.php
index 47d28d5267..c64ad2efaa 100644
--- a/src/Controllers/Table/Maintenance/RepairController.php
+++ b/src/Controllers/Table/Maintenance/RepairController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Maintenance;
use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -32,7 +33,7 @@ final class RepairController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$selectedTablesParam = $request->getParsedBodyParam('selected_tbl');
@@ -44,7 +45,7 @@ final class RepairController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No table selected.'));
- return;
+ return null;
}
try {
@@ -58,14 +59,14 @@ final class RepairController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $message->getDisplay());
- return;
+ return null;
}
if ($this->config->get('DisableMultiTableMaintenance') && count($selectedTables) > 1) {
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('Maintenance operations on multiple tables are disabled.'));
- return;
+ return null;
}
[$rows, $query] = $this->model->getRepairTableRows($database, $selectedTables);
@@ -77,5 +78,7 @@ final class RepairController extends AbstractController
);
$this->render('table/maintenance/repair', ['message' => $message, 'rows' => $rows]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Partition/AnalyzeController.php b/src/Controllers/Table/Partition/AnalyzeController.php
index ebbcd9f8ff..15faa6bc04 100644
--- a/src/Controllers/Table/Partition/AnalyzeController.php
+++ b/src/Controllers/Table/Partition/AnalyzeController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Table\Partition;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -29,7 +30,7 @@ final class AnalyzeController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$partitionName = $request->getParsedBodyParam('partition_name');
@@ -41,7 +42,7 @@ final class AnalyzeController extends AbstractController
$message = Message::error($exception->getMessage());
$this->response->addHTML($message->getDisplay());
- return;
+ return null;
}
[$rows, $query] = $this->model->analyze($database, $table, $partitionName);
@@ -57,5 +58,7 @@ final class AnalyzeController extends AbstractController
'message' => $message,
'rows' => $rows,
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Partition/CheckController.php b/src/Controllers/Table/Partition/CheckController.php
index ec398d1910..05e46f7046 100644
--- a/src/Controllers/Table/Partition/CheckController.php
+++ b/src/Controllers/Table/Partition/CheckController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Table\Partition;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -29,7 +30,7 @@ final class CheckController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$partitionName = $request->getParsedBodyParam('partition_name');
@@ -41,7 +42,7 @@ final class CheckController extends AbstractController
$message = Message::error($exception->getMessage());
$this->response->addHTML($message->getDisplay());
- return;
+ return null;
}
[$rows, $query] = $this->model->check($database, $table, $partitionName);
@@ -57,5 +58,7 @@ final class CheckController extends AbstractController
'message' => $message,
'rows' => $rows,
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Partition/DropController.php b/src/Controllers/Table/Partition/DropController.php
index b220b53975..3b5ff176a3 100644
--- a/src/Controllers/Table/Partition/DropController.php
+++ b/src/Controllers/Table/Partition/DropController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Table\Partition;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -29,7 +30,7 @@ final class DropController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$partitionName = $request->getParsedBodyParam('partition_name');
@@ -41,7 +42,7 @@ final class DropController extends AbstractController
$message = Message::error($exception->getMessage());
$this->response->addHTML($message->getDisplay());
- return;
+ return null;
}
[$result, $query] = $this->model->drop($database, $table, $partitionName);
@@ -61,5 +62,7 @@ final class DropController extends AbstractController
}
$this->render('table/partition/drop', ['partition_name' => $partitionName, 'message' => $message]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Partition/OptimizeController.php b/src/Controllers/Table/Partition/OptimizeController.php
index b83663b666..35666cb546 100644
--- a/src/Controllers/Table/Partition/OptimizeController.php
+++ b/src/Controllers/Table/Partition/OptimizeController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Table\Partition;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -29,7 +30,7 @@ final class OptimizeController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$partitionName = $request->getParsedBodyParam('partition_name');
@@ -41,7 +42,7 @@ final class OptimizeController extends AbstractController
$message = Message::error($exception->getMessage());
$this->response->addHTML($message->getDisplay());
- return;
+ return null;
}
[$rows, $query] = $this->model->optimize($database, $table, $partitionName);
@@ -57,5 +58,7 @@ final class OptimizeController extends AbstractController
'message' => $message,
'rows' => $rows,
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Partition/RebuildController.php b/src/Controllers/Table/Partition/RebuildController.php
index 6fa9700a57..bc0a6b111a 100644
--- a/src/Controllers/Table/Partition/RebuildController.php
+++ b/src/Controllers/Table/Partition/RebuildController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Table\Partition;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -29,7 +30,7 @@ final class RebuildController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$partitionName = $request->getParsedBodyParam('partition_name');
@@ -41,7 +42,7 @@ final class RebuildController extends AbstractController
$message = Message::error($exception->getMessage());
$this->response->addHTML($message->getDisplay());
- return;
+ return null;
}
[$result, $query] = $this->model->rebuild($database, $table, $partitionName);
@@ -61,5 +62,7 @@ final class RebuildController extends AbstractController
}
$this->render('table/partition/rebuild', ['partition_name' => $partitionName, 'message' => $message]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Partition/RepairController.php b/src/Controllers/Table/Partition/RepairController.php
index ee5e5bb47b..45b2b7ed69 100644
--- a/src/Controllers/Table/Partition/RepairController.php
+++ b/src/Controllers/Table/Partition/RepairController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Table\Partition;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -29,7 +30,7 @@ final class RepairController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$partitionName = $request->getParsedBodyParam('partition_name');
@@ -41,7 +42,7 @@ final class RepairController extends AbstractController
$message = Message::error($exception->getMessage());
$this->response->addHTML($message->getDisplay());
- return;
+ return null;
}
[$rows, $query] = $this->model->repair($database, $table, $partitionName);
@@ -57,5 +58,7 @@ final class RepairController extends AbstractController
'message' => $message,
'rows' => $rows,
]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Partition/TruncateController.php b/src/Controllers/Table/Partition/TruncateController.php
index 9ab1937a40..d55962b60c 100644
--- a/src/Controllers/Table/Partition/TruncateController.php
+++ b/src/Controllers/Table/Partition/TruncateController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Table\Partition;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -29,7 +30,7 @@ final class TruncateController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$partitionName = $request->getParsedBodyParam('partition_name');
@@ -41,7 +42,7 @@ final class TruncateController extends AbstractController
$message = Message::error($exception->getMessage());
$this->response->addHTML($message->getDisplay());
- return;
+ return null;
}
[$result, $query] = $this->model->truncate($database, $table, $partitionName);
@@ -61,5 +62,7 @@ final class TruncateController extends AbstractController
}
$this->render('table/partition/truncate', ['partition_name' => $partitionName, 'message' => $message]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/PrivilegesController.php b/src/Controllers/Table/PrivilegesController.php
index ec56ff8cf7..85a16f149c 100644
--- a/src/Controllers/Table/PrivilegesController.php
+++ b/src/Controllers/Table/PrivilegesController.php
@@ -10,6 +10,7 @@ namespace PhpMyAdmin\Controllers\Table;
use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -38,7 +39,7 @@ class PrivilegesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
try {
$db = DatabaseName::from($request->getParam('db'));
@@ -50,7 +51,7 @@ class PrivilegesController extends AbstractController
} catch (InvalidIdentifier $exception) {
$this->response->addHTML(Message::error($exception->getMessage())->getDisplay());
- return;
+ return null;
}
$this->addScriptFiles(['server/privileges.js', 'vendor/zxcvbn-ts.js']);
@@ -68,7 +69,7 @@ class PrivilegesController extends AbstractController
->getDisplay(),
);
- return;
+ return null;
}
if (! $isGrantUser && ! $isCreateUser) {
@@ -95,5 +96,7 @@ class PrivilegesController extends AbstractController
'privileges' => $privileges,
]);
$this->render('export_modal');
+
+ return null;
}
}
diff --git a/src/Controllers/Table/RecentFavoriteController.php b/src/Controllers/Table/RecentFavoriteController.php
index 1cd0aa1269..edec44778d 100644
--- a/src/Controllers/Table/RecentFavoriteController.php
+++ b/src/Controllers/Table/RecentFavoriteController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Favorites\RecentFavoriteTable;
use PhpMyAdmin\Favorites\RecentFavoriteTables;
use PhpMyAdmin\Favorites\TableType;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -20,7 +21,7 @@ use function __;
*/
final class RecentFavoriteController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
try {
$db = DatabaseName::from($request->getParam('db'));
@@ -28,7 +29,7 @@ final class RecentFavoriteController extends AbstractController
} catch (InvalidIdentifier) {
$this->redirect('/', ['message' => __('Invalid database or table name.')]);
- return;
+ return null;
}
$favoriteTable = new RecentFavoriteTable($db, $table);
@@ -36,5 +37,7 @@ final class RecentFavoriteController extends AbstractController
RecentFavoriteTables::getInstance(TableType::Favorite)->removeIfInvalid($favoriteTable);
$this->redirect('/sql', ['db' => $db->getName(), 'table' => $table->getName()]);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/RelationController.php b/src/Controllers/Table/RelationController.php
index 99a9779a04..ba3671f067 100644
--- a/src/Controllers/Table/RelationController.php
+++ b/src/Controllers/Table/RelationController.php
@@ -13,6 +13,7 @@ use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Index;
use PhpMyAdmin\ResponseRenderer;
@@ -50,7 +51,7 @@ final class RelationController extends AbstractController
/**
* Index
*/
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$options = [
'CASCADE' => 'CASCADE',
@@ -84,7 +85,7 @@ final class RelationController extends AbstractController
$this->getDropdownValueForDatabase($storageEngine);
}
- return;
+ return null;
}
$this->addScriptFiles(['table/relation.js']);
@@ -130,7 +131,7 @@ final class RelationController extends AbstractController
if (isset($_POST['preview_sql'])) {
Core::previewSQL($previewSqlData);
- return;
+ return null;
}
if ($displayQuery !== '' && ! $seenError) {
@@ -309,6 +310,8 @@ final class RelationController extends AbstractController
'display_field' => $this->relation->getDisplayField(Current::$database, Current::$table),
'foreign_key_row' => $foreignKeyRow,
]);
+
+ return null;
}
/**
diff --git a/src/Controllers/Table/ReplaceController.php b/src/Controllers/Table/ReplaceController.php
index 425faca36b..9b7b30d27d 100644
--- a/src/Controllers/Table/ReplaceController.php
+++ b/src/Controllers/Table/ReplaceController.php
@@ -15,6 +15,7 @@ use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\EditField;
use PhpMyAdmin\File;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\InsertEdit;
use PhpMyAdmin\Message;
@@ -55,12 +56,12 @@ final class ReplaceController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['urlParams'] ??= null;
$GLOBALS['message'] ??= null;
if (! $this->checkParameters(['db', 'table', 'goto'])) {
- return;
+ return null;
}
$GLOBALS['errorUrl'] ??= null;
@@ -289,14 +290,14 @@ final class ReplaceController extends AbstractController
$this->moveBackToCallingScript($gotoInclude, $request);
- return;
+ return null;
}
// If there is a request for SQL previewing.
if ($request->hasBodyParam('preview_sql')) {
Core::previewSQL($GLOBALS['query']);
- return;
+ return null;
}
$returnToSqlQuery = '';
@@ -355,7 +356,7 @@ final class ReplaceController extends AbstractController
*/
$this->doTransformations($mimeMap, $request);
- return;
+ return null;
}
if (! empty($returnToSqlQuery)) {
@@ -377,6 +378,8 @@ final class ReplaceController extends AbstractController
}
$this->moveBackToCallingScript($gotoInclude, $request);
+
+ return null;
}
/** @param string[][] $mimeMap */
diff --git a/src/Controllers/Table/SearchController.php b/src/Controllers/Table/SearchController.php
index b47a6134a3..e97c5bab40 100644
--- a/src/Controllers/Table/SearchController.php
+++ b/src/Controllers/Table/SearchController.php
@@ -12,6 +12,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -154,10 +155,10 @@ class SearchController extends AbstractController
/**
* Index action
*/
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$GLOBALS['urlParams'] = ['db' => Current::$database, 'table' => Current::$table];
@@ -173,12 +174,12 @@ class SearchController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -187,12 +188,12 @@ class SearchController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
$this->loadTableInfo();
@@ -209,7 +210,7 @@ class SearchController extends AbstractController
if (isset($_POST['range_search'])) {
$this->rangeSearchAction();
- return;
+ return null;
}
/**
@@ -220,6 +221,8 @@ class SearchController extends AbstractController
} else {
$this->doSelectionAction();
}
+
+ return null;
}
/**
diff --git a/src/Controllers/Table/SqlController.php b/src/Controllers/Table/SqlController.php
index 2431c912d2..bb241fffa9 100644
--- a/src/Controllers/Table/SqlController.php
+++ b/src/Controllers/Table/SqlController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\Config\PageSettings;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DbTableExists;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -37,7 +38,7 @@ class SqlController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
$GLOBALS['goto'] ??= null;
@@ -50,7 +51,7 @@ class SqlController extends AbstractController
$this->response->addHTML($this->pageSettings->getHTML());
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$urlParams = ['db' => Current::$database, 'table' => Current::$table];
@@ -66,12 +67,12 @@ class SqlController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -80,12 +81,12 @@ class SqlController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
/**
@@ -103,5 +104,7 @@ class SqlController extends AbstractController
false,
htmlspecialchars($delimiter),
));
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Structure/AddIndexController.php b/src/Controllers/Table/Structure/AddIndexController.php
index 6b3c193acd..3504eafa01 100644
--- a/src/Controllers/Table/Structure/AddIndexController.php
+++ b/src/Controllers/Table/Structure/AddIndexController.php
@@ -4,12 +4,15 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Table\Structure;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
final class AddIndexController extends AbstractIndexController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->handleIndexCreation($request, 'INDEX');
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Structure/AddKeyController.php b/src/Controllers/Table/Structure/AddKeyController.php
index da90f16443..0b9b95cdbf 100644
--- a/src/Controllers/Table/Structure/AddKeyController.php
+++ b/src/Controllers/Table/Structure/AddKeyController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Structure;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Controllers\Sql\SqlController;
use PhpMyAdmin\Controllers\Table\StructureController;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -22,12 +23,14 @@ final class AddKeyController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
($this->sqlController)($request);
$GLOBALS['reload'] = true;
($this->structureController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Structure/BrowseController.php b/src/Controllers/Table/Structure/BrowseController.php
index 65e9d111fc..070db1cc85 100644
--- a/src/Controllers/Table/Structure/BrowseController.php
+++ b/src/Controllers/Table/Structure/BrowseController.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Table\Structure;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ParseAnalyze;
use PhpMyAdmin\ResponseRenderer;
@@ -24,16 +25,18 @@ final class BrowseController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (empty($_POST['selected_fld'])) {
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No column selected.'));
- return;
+ return null;
}
$this->displayTableBrowseForSelectedColumns($GLOBALS['goto']);
+
+ return null;
}
/**
diff --git a/src/Controllers/Table/Structure/CentralColumnsAddController.php b/src/Controllers/Table/Structure/CentralColumnsAddController.php
index 7555150ec3..c282557d5a 100644
--- a/src/Controllers/Table/Structure/CentralColumnsAddController.php
+++ b/src/Controllers/Table/Structure/CentralColumnsAddController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Structure;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Controllers\Table\StructureController;
use PhpMyAdmin\Database\CentralColumns;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Message;
@@ -28,7 +29,7 @@ final class CentralColumnsAddController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['message'] ??= null;
@@ -38,7 +39,7 @@ final class CentralColumnsAddController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No column selected.'));
- return;
+ return null;
}
Assert::allString($selected);
@@ -59,5 +60,7 @@ final class CentralColumnsAddController extends AbstractController
}
($this->structureController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Structure/CentralColumnsRemoveController.php b/src/Controllers/Table/Structure/CentralColumnsRemoveController.php
index 39da34621b..c855506890 100644
--- a/src/Controllers/Table/Structure/CentralColumnsRemoveController.php
+++ b/src/Controllers/Table/Structure/CentralColumnsRemoveController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Controllers\Table\StructureController;
use PhpMyAdmin\Current;
use PhpMyAdmin\Database\CentralColumns;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -28,7 +29,7 @@ final class CentralColumnsRemoveController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['message'] ??= null;
@@ -38,7 +39,7 @@ final class CentralColumnsRemoveController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No column selected.'));
- return;
+ return null;
}
Assert::allString($selected);
@@ -54,5 +55,7 @@ final class CentralColumnsRemoveController extends AbstractController
}
($this->structureController)($request);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Structure/ChangeController.php b/src/Controllers/Table/Structure/ChangeController.php
index 198861c02d..6cee2c6143 100644
--- a/src/Controllers/Table/Structure/ChangeController.php
+++ b/src/Controllers/Table/Structure/ChangeController.php
@@ -8,6 +8,7 @@ use PhpMyAdmin\ColumnFull;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table\ColumnsDefinition;
@@ -34,16 +35,16 @@ final class ChangeController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $this->checkParameters(['server', 'db', 'table'])) {
- return;
+ return null;
}
if ($request->getParam('change_column') !== null) {
$this->displayHtmlForColumnChange([$request->getParam('field')]);
- return;
+ return null;
}
$selected = $request->getParsedBodyParam('selected_fld', []);
@@ -52,10 +53,12 @@ final class ChangeController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No column selected.'));
- return;
+ return null;
}
$this->displayHtmlForColumnChange($selected);
+
+ return null;
}
/**
diff --git a/src/Controllers/Table/Structure/FulltextController.php b/src/Controllers/Table/Structure/FulltextController.php
index 05c7374ad3..55ef36904f 100644
--- a/src/Controllers/Table/Structure/FulltextController.php
+++ b/src/Controllers/Table/Structure/FulltextController.php
@@ -4,12 +4,15 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Table\Structure;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
final class FulltextController extends AbstractIndexController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->handleIndexCreation($request, 'FULLTEXT');
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Structure/MoveColumnsController.php b/src/Controllers/Table/Structure/MoveColumnsController.php
index b2d05d6879..a729830392 100644
--- a/src/Controllers/Table/Structure/MoveColumnsController.php
+++ b/src/Controllers/Table/Structure/MoveColumnsController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Structure;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -40,11 +41,11 @@ final class MoveColumnsController extends AbstractController
$this->tableObj = $this->dbi->getTable(Current::$database, Current::$table);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$moveColumns = $request->getParsedBodyParam('move_columns');
if (! is_array($moveColumns) || ! $request->isAjax()) {
- return;
+ return null;
}
$this->dbi->selectDb(Current::$database);
@@ -131,7 +132,7 @@ final class MoveColumnsController extends AbstractController
if ($changes === [] && ! isset($_REQUEST['preview_sql'])) { // should never happen
$this->response->setRequestStatus(false);
- return;
+ return null;
}
// query for moving the columns
@@ -147,7 +148,7 @@ final class MoveColumnsController extends AbstractController
$this->template->render('preview_sql', ['query_data' => $sqlQuery]),
);
- return;
+ return null;
}
$this->dbi->tryQuery($sqlQuery);
@@ -156,7 +157,7 @@ final class MoveColumnsController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error($tmpError));
- return;
+ return null;
}
$message = Message::success(
@@ -164,5 +165,7 @@ final class MoveColumnsController extends AbstractController
);
$this->response->addJSON('message', $message);
$this->response->addJSON('columns', $columnNames);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Structure/PartitioningController.php b/src/Controllers/Table/Structure/PartitioningController.php
index 0fb173b1a3..cee165ddda 100644
--- a/src/Controllers/Table/Structure/PartitioningController.php
+++ b/src/Controllers/Table/Structure/PartitioningController.php
@@ -11,6 +11,7 @@ use PhpMyAdmin\CreateAddField;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\Partitioning\TablePartitionDefinition;
@@ -42,14 +43,14 @@ final class PartitioningController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (isset($_POST['save_partitioning'])) {
$this->dbi->selectDb(Current::$database);
$this->updatePartitioning();
($this->structureController)($request);
- return;
+ return null;
}
$this->pageSettings->init('TableStructure');
@@ -75,6 +76,8 @@ final class PartitioningController extends AbstractController
'partition_details' => $partitionDetails,
'storage_engines' => $storageEngines,
]);
+
+ return null;
}
/**
diff --git a/src/Controllers/Table/Structure/PrimaryController.php b/src/Controllers/Table/Structure/PrimaryController.php
index 402b0e99fb..0e6afe052d 100644
--- a/src/Controllers/Table/Structure/PrimaryController.php
+++ b/src/Controllers/Table/Structure/PrimaryController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Controllers\Table\StructureController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -35,7 +36,7 @@ final class PrimaryController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['message'] ??= null;
$GLOBALS['urlParams'] ??= null;
@@ -48,7 +49,7 @@ final class PrimaryController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No column selected.'));
- return;
+ return null;
}
$this->dbi->selectDb(Current::$database);
@@ -59,7 +60,7 @@ final class PrimaryController extends AbstractController
if ($hasPrimary && $deletionConfirmed === null) {
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$GLOBALS['urlParams'] = ['db' => Current::$database, 'table' => Current::$table];
@@ -75,12 +76,12 @@ final class PrimaryController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -89,12 +90,12 @@ final class PrimaryController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
$this->render('table/structure/primary', [
@@ -103,7 +104,7 @@ final class PrimaryController extends AbstractController
'selected' => $selected,
]);
- return;
+ return null;
}
if ($deletionConfirmed === __('Yes') || ! $hasPrimary) {
@@ -134,6 +135,8 @@ final class PrimaryController extends AbstractController
}
($this->structureController)($request);
+
+ return null;
}
private function hasPrimaryKey(): bool
diff --git a/src/Controllers/Table/Structure/ReservedWordCheckController.php b/src/Controllers/Table/Structure/ReservedWordCheckController.php
index 8eb771428d..e3643fb297 100644
--- a/src/Controllers/Table/Structure/ReservedWordCheckController.php
+++ b/src/Controllers/Table/Structure/ReservedWordCheckController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Structure;
use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\SqlParser\Context;
@@ -18,12 +19,12 @@ use function trim;
final class ReservedWordCheckController extends AbstractController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (Config::getInstance()->settings['ReservedWordDisableWarning'] !== false) {
$this->response->setRequestStatus(false);
- return;
+ return null;
}
$columnsNames = $request->getParsedBodyParam('field_name');
@@ -55,5 +56,7 @@ final class ReservedWordCheckController extends AbstractController
implode(',', $reservedKeywordsNames),
),
);
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Structure/SaveController.php b/src/Controllers/Table/Structure/SaveController.php
index 53edb12f3d..935065b68e 100644
--- a/src/Controllers/Table/Structure/SaveController.php
+++ b/src/Controllers/Table/Structure/SaveController.php
@@ -12,6 +12,7 @@ use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Index;
use PhpMyAdmin\Message;
@@ -51,7 +52,7 @@ final class SaveController extends AbstractController
$this->tableObj = $this->dbi->getTable(Current::$database, Current::$table);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$userPrivileges = $this->userPrivilegesFactory->getPrivileges();
@@ -62,6 +63,8 @@ final class SaveController extends AbstractController
}
($this->structureController)($request);
+
+ return null;
}
/**
diff --git a/src/Controllers/Table/Structure/SpatialController.php b/src/Controllers/Table/Structure/SpatialController.php
index 1e4d33f8ea..1ac8cc536a 100644
--- a/src/Controllers/Table/Structure/SpatialController.php
+++ b/src/Controllers/Table/Structure/SpatialController.php
@@ -4,12 +4,15 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Table\Structure;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
final class SpatialController extends AbstractIndexController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->handleIndexCreation($request, 'SPATIAL');
+
+ return null;
}
}
diff --git a/src/Controllers/Table/Structure/UniqueController.php b/src/Controllers/Table/Structure/UniqueController.php
index d95333e1ee..bd19086941 100644
--- a/src/Controllers/Table/Structure/UniqueController.php
+++ b/src/Controllers/Table/Structure/UniqueController.php
@@ -4,12 +4,15 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Table\Structure;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
final class UniqueController extends AbstractIndexController
{
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->handleIndexCreation($request, 'UNIQUE');
+
+ return null;
}
}
diff --git a/src/Controllers/Table/StructureController.php b/src/Controllers/Table/StructureController.php
index 8b4c2f0545..cec4b4c940 100644
--- a/src/Controllers/Table/StructureController.php
+++ b/src/Controllers/Table/StructureController.php
@@ -17,6 +17,7 @@ use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Engines\Innodb;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -63,7 +64,7 @@ class StructureController extends AbstractController
$this->tableObj = $this->dbi->getTable(Current::$database, Current::$table);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errorUrl'] ??= null;
@@ -78,7 +79,7 @@ class StructureController extends AbstractController
$relationParameters = $this->relation->getRelationParameters();
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$isSystemSchema = Utilities::isSystemSchema(Current::$database);
@@ -95,12 +96,12 @@ class StructureController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -109,12 +110,12 @@ class StructureController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
$primary = Index::getPrimary($this->dbi, Current::$table, Current::$database);
@@ -132,6 +133,8 @@ class StructureController extends AbstractController
$isSystemSchema,
$request->getRoute(),
));
+
+ return null;
}
/**
diff --git a/src/Controllers/Table/TrackingController.php b/src/Controllers/Table/TrackingController.php
index dc6a8be2e6..2156e7be9d 100644
--- a/src/Controllers/Table/TrackingController.php
+++ b/src/Controllers/Table/TrackingController.php
@@ -10,6 +10,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\DbTableExists;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\LanguageManager;
@@ -47,7 +48,7 @@ final class TrackingController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['urlParams'] ??= null;
$GLOBALS['errorUrl'] ??= null;
@@ -55,7 +56,7 @@ final class TrackingController extends AbstractController
$this->addScriptFiles(['vendor/jquery/jquery.tablesorter.js', 'table/tracking.js']);
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$GLOBALS['urlParams'] = ['db' => Current::$database, 'table' => Current::$table];
@@ -71,12 +72,12 @@ final class TrackingController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$activeMessage = '';
@@ -144,7 +145,7 @@ final class TrackingController extends AbstractController
Core::downloadHeader($downloadInfo['filename'], 'text/x-sql', mb_strlen($downloadInfo['dump']));
echo $downloadInfo['dump'];
- return;
+ return null;
}
// Export as SQL execution
@@ -270,6 +271,8 @@ final class TrackingController extends AbstractController
'tracking_report' => $trackingReport,
'main' => $main,
]);
+
+ return null;
}
/** @psalm-return 'schema'|'data'|'schema_and_data' */
diff --git a/src/Controllers/Table/ZoomSearchController.php b/src/Controllers/Table/ZoomSearchController.php
index 01e60fbbb5..ecf87d6502 100644
--- a/src/Controllers/Table/ZoomSearchController.php
+++ b/src/Controllers/Table/ZoomSearchController.php
@@ -11,6 +11,7 @@ use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -79,13 +80,13 @@ class ZoomSearchController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['goto'] ??= null;
$GLOBALS['urlParams'] ??= null;
$GLOBALS['errorUrl'] ??= null;
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$GLOBALS['urlParams'] = ['db' => Current::$database, 'table' => Current::$table];
@@ -99,12 +100,12 @@ class ZoomSearchController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
@@ -113,12 +114,12 @@ class ZoomSearchController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No table selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
$this->loadTableInfo();
@@ -144,7 +145,7 @@ class ZoomSearchController extends AbstractController
if (isset($_POST['get_data_row']) && $_POST['get_data_row'] == true) {
$this->getDataRowAction();
- return;
+ return null;
}
/**
@@ -154,7 +155,7 @@ class ZoomSearchController extends AbstractController
if ($request->hasBodyParam('change_tbl_info')) {
$this->changeTableInfoAction();
- return;
+ return null;
}
//Set default datalabel if not selected
@@ -177,7 +178,7 @@ class ZoomSearchController extends AbstractController
|| $_POST['criteriaColumnNames'][1] === 'pma_null'
|| $_POST['criteriaColumnNames'][0] == $_POST['criteriaColumnNames'][1]
) {
- return;
+ return null;
}
if (! isset($GLOBALS['goto'])) {
@@ -185,6 +186,8 @@ class ZoomSearchController extends AbstractController
}
$this->zoomSubmitAction($dataLabel, $GLOBALS['goto']);
+
+ return null;
}
/**
diff --git a/src/Controllers/TableController.php b/src/Controllers/TableController.php
index afad69eca4..4508e9b75c 100644
--- a/src/Controllers/TableController.php
+++ b/src/Controllers/TableController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers;
use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -17,15 +18,17 @@ final class TableController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $request->hasBodyParam('db')) {
$this->response->setRequestStatus(false);
$this->response->addJSON(['message' => Message::error()]);
- return;
+ return null;
}
$this->response->addJSON(['tables' => $this->dbi->getTables($request->getParsedBodyParam('db'))]);
+
+ return null;
}
}
diff --git a/src/Controllers/ThemeSetController.php b/src/Controllers/ThemeSetController.php
index 87eef4870b..3ad648eaee 100644
--- a/src/Controllers/ThemeSetController.php
+++ b/src/Controllers/ThemeSetController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers;
use PhpMyAdmin\Config;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -25,19 +26,19 @@ final class ThemeSetController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$theme = $request->getParsedBodyParam('set_theme');
if (! Config::getInstance()->settings['ThemeManager'] || ! is_string($theme) || $theme === '') {
if ($request->isAjax()) {
$this->response->addJSON('themeColorMode', '');
- return;
+ return null;
}
$this->response->redirect('index.php?route=/' . Url::getCommonRaw([], '&'));
- return;
+ return null;
}
$this->themeManager->setActiveTheme($theme);
@@ -57,9 +58,11 @@ final class ThemeSetController extends AbstractController
if ($request->isAjax()) {
$this->response->addJSON('themeColorMode', $this->themeManager->theme->getColorMode());
- return;
+ return null;
}
$this->response->redirect('index.php?route=/' . Url::getCommonRaw([], '&'));
+
+ return null;
}
}
diff --git a/src/Controllers/ThemesController.php b/src/Controllers/ThemesController.php
index 30a56eea51..6ef2b5abaf 100644
--- a/src/Controllers/ThemesController.php
+++ b/src/Controllers/ThemesController.php
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -16,16 +17,18 @@ class ThemesController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$themes = $this->themeManager->getThemesArray();
$themesList = $this->template->render('home/themes', ['themes' => $themes]);
if ($request->isAjax()) {
$this->response->addJSON('themes', $themesList);
- return;
+ return null;
}
$this->response->addHTML($themesList);
+
+ return null;
}
}
diff --git a/src/Controllers/Transformation/OverviewController.php b/src/Controllers/Transformation/OverviewController.php
index 5fe5e942d5..2d55db7c75 100644
--- a/src/Controllers/Transformation/OverviewController.php
+++ b/src/Controllers/Transformation/OverviewController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Transformation;
use PhpMyAdmin\Controllers\AbstractController;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -25,7 +26,7 @@ class OverviewController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$header = $this->response->getHeader();
$header->disableMenuAndConsole();
@@ -49,5 +50,7 @@ class OverviewController extends AbstractController
}
$this->render('transformation_overview', ['mime_types' => $mimeTypes, 'transformations' => $transformations]);
+
+ return null;
}
}
diff --git a/src/Controllers/Transformation/WrapperController.php b/src/Controllers/Transformation/WrapperController.php
index bdc03999d6..1cc333fcae 100644
--- a/src/Controllers/Transformation/WrapperController.php
+++ b/src/Controllers/Transformation/WrapperController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Core;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
@@ -47,7 +48,7 @@ class WrapperController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$this->response->getHeader()->setIsTransformationWrapper(true);
@@ -55,15 +56,15 @@ class WrapperController extends AbstractController
$db = DatabaseName::from($request->getParam('db'));
$table = TableName::from($request->getParam('table'));
} catch (InvalidIdentifier) {
- return;
+ return null;
}
if (! $this->dbi->selectDb($db)) {
- return;
+ return null;
}
if (! $this->dbTableExists->hasTable($db, $table)) {
- return;
+ return null;
}
$query = $this->getQuery($table, $request->getParam('where_clause'), $request->getParam('where_clause_sign'));
@@ -72,12 +73,12 @@ class WrapperController extends AbstractController
/* l10n: In case a SQL query did not pass a security check */
$this->response->addHTML(Message::error(__('There is an issue with your request.'))->getDisplay());
- return;
+ return null;
}
$row = $this->dbi->query($query)->fetchAssoc();
if ($row === []) {
- return;
+ return null;
}
$transformKey = $request->getParam('transform_key');
@@ -85,7 +86,7 @@ class WrapperController extends AbstractController
! is_string($transformKey) || $transformKey === ''
|| ! isset($row[$transformKey]) || $row[$transformKey] === ''
) {
- return;
+ return null;
}
$mediaTypeMap = [];
@@ -135,17 +136,17 @@ class WrapperController extends AbstractController
if (str_contains(strtolower($contentMediaType), 'html')) {
echo htmlspecialchars($row[$transformKey]);
- return;
+ return null;
}
echo $row[$transformKey];
- return;
+ return null;
}
$srcImage = ImageWrapper::fromString($row[$transformKey]);
if ($srcImage === null) {
- return;
+ return null;
}
$newHeight = $this->formatSize($request->getParam('newHeight'));
@@ -172,7 +173,7 @@ class WrapperController extends AbstractController
$destImage = ImageWrapper::create($destWidth, $destHeight);
if ($destImage === null) {
- return;
+ return null;
}
$destImage->copyResampled($srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);
@@ -182,6 +183,8 @@ class WrapperController extends AbstractController
} else {
$destImage->png();
}
+
+ return null;
}
private function formatSize(mixed $size): int
diff --git a/src/Controllers/Triggers/IndexController.php b/src/Controllers/Triggers/IndexController.php
index ea11f85a9d..cbcec9a108 100644
--- a/src/Controllers/Triggers/IndexController.php
+++ b/src/Controllers/Triggers/IndexController.php
@@ -9,6 +9,7 @@ use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
@@ -44,7 +45,7 @@ final class IndexController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['errors'] ??= null;
$GLOBALS['urlParams'] ??= null;
@@ -59,7 +60,7 @@ final class IndexController extends AbstractController
*/
if (Current::$table !== '' && in_array(Current::$table, $this->dbi->getTables(Current::$database), true)) {
if (! $this->checkParameters(['db', 'table'])) {
- return;
+ return null;
}
$GLOBALS['urlParams'] = ['db' => Current::$database, 'table' => Current::$table];
@@ -70,20 +71,20 @@ final class IndexController extends AbstractController
if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) {
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$tableName = TableName::tryFrom($request->getParam('table'));
if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) {
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
- return;
+ return null;
}
} else {
Current::$table = '';
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$GLOBALS['errorUrl'] = Util::getScriptNameForOption(
@@ -96,7 +97,7 @@ final class IndexController extends AbstractController
if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) {
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
}
} elseif (Current::$database !== '') {
@@ -162,7 +163,7 @@ final class IndexController extends AbstractController
$this->response->addJSON('tableType', 'triggers');
- return;
+ return null;
}
}
@@ -216,12 +217,12 @@ final class IndexController extends AbstractController
$this->response->addJSON('message', $editor);
$this->response->addJSON('title', $title);
- return;
+ return null;
}
$this->response->addHTML("\n\n" . $title . "
\n\n" . $editor);
- return;
+ return null;
}
$message = __('Error in processing request:') . ' ';
@@ -235,7 +236,7 @@ final class IndexController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $message);
- return;
+ return null;
}
$this->response->addHTML($message->getDisplay());
@@ -254,13 +255,13 @@ final class IndexController extends AbstractController
$this->response->addJSON('title', $title);
$this->response->addJSON('message', htmlspecialchars(trim($exportData)));
- return;
+ return null;
}
if ($exportData !== null) {
$this->render('triggers/export', ['data' => $exportData, 'item_name' => $triggerName->getName()]);
- return;
+ return null;
}
$message = Message::error(sprintf(
@@ -272,7 +273,7 @@ final class IndexController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $message);
- return;
+ return null;
}
}
@@ -288,6 +289,8 @@ final class IndexController extends AbstractController
'is_ajax' => $isAjax,
'error_message' => $message?->getDisplay() ?? '',
]);
+
+ return null;
}
/**
diff --git a/src/Controllers/UserPasswordController.php b/src/Controllers/UserPasswordController.php
index 43fd2a782a..216e1299ec 100644
--- a/src/Controllers/UserPasswordController.php
+++ b/src/Controllers/UserPasswordController.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers;
use PhpMyAdmin\Config;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
@@ -29,7 +30,7 @@ class UserPasswordController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$GLOBALS['hostname'] ??= null;
$GLOBALS['username'] ??= null;
@@ -51,7 +52,7 @@ class UserPasswordController extends AbstractController
__('You don\'t have sufficient privileges to be here right now!'),
)->getDisplay());
- return;
+ return null;
}
$noPass = $request->getParsedBodyParam('nopass');
@@ -81,21 +82,21 @@ class UserPasswordController extends AbstractController
$sqlQuery = Generator::getMessage($GLOBALS['change_password_message']['msg'], $sqlQuery, 'success');
$this->response->addJSON('message', $sqlQuery);
- return;
+ return null;
}
$this->response->addHTML('' . __('Change password') . '
' . "\n\n");
$this->response->addHTML(Generator::getMessage($message, $sqlQuery, 'success'));
$this->render('user_password');
- return;
+ return null;
}
if ($request->isAjax()) {
$this->response->addJSON('message', $GLOBALS['change_password_message']['msg']);
$this->response->setRequestStatus(false);
- return;
+ return null;
}
}
@@ -114,5 +115,7 @@ class UserPasswordController extends AbstractController
$GLOBALS['hostname'],
$request->getRoute(),
));
+
+ return null;
}
}
diff --git a/src/Controllers/VersionCheckController.php b/src/Controllers/VersionCheckController.php
index 41e3b5473c..12232fad5f 100644
--- a/src/Controllers/VersionCheckController.php
+++ b/src/Controllers/VersionCheckController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers;
use PhpMyAdmin\Core;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@@ -27,7 +28,7 @@ class VersionCheckController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
$_GET['ajax_request'] = 'true';
@@ -44,7 +45,7 @@ class VersionCheckController extends AbstractController
if ($versionDetails === null) {
echo json_encode([]);
- return;
+ return null;
}
$latestCompatible = $this->versionInformation->getLatestCompatibleVersion($versionDetails);
@@ -56,5 +57,7 @@ class VersionCheckController extends AbstractController
}
echo json_encode(['version' => $version, 'date' => $date]);
+
+ return null;
}
}
diff --git a/src/Controllers/View/CreateController.php b/src/Controllers/View/CreateController.php
index 843320b895..6c9b541edf 100644
--- a/src/Controllers/View/CreateController.php
+++ b/src/Controllers/View/CreateController.php
@@ -12,6 +12,7 @@ use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Html\Generator;
+use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\LanguageManager;
@@ -55,10 +56,10 @@ class CreateController extends AbstractController
parent::__construct($response, $template);
}
- public function __invoke(ServerRequest $request): void
+ public function __invoke(ServerRequest $request): Response|null
{
if (! $this->checkParameters(['db'])) {
- return;
+ return null;
}
$GLOBALS['urlParams'] ??= null;
@@ -76,12 +77,12 @@ class CreateController extends AbstractController
$this->response->setRequestStatus(false);
$this->response->addJSON('message', Message::error(__('No databases selected.')));
- return;
+ return null;
}
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
- return;
+ return null;
}
$GLOBALS['urlParams']['goto'] = Url::getFromRoute('/table/structure');
@@ -96,7 +97,7 @@ class CreateController extends AbstractController
$this->response->addJSON('message', $GLOBALS['message']);
$this->response->setRequestStatus(false);
- return;
+ return null;
}
$createview = $request->hasBodyParam('createview');
@@ -110,7 +111,7 @@ class CreateController extends AbstractController
if (! $ajaxdialog) {
$GLOBALS['message'] = Message::rawError($this->dbi->getError());
- return;
+ return null;
}
$this->response->addJSON(
@@ -122,12 +123,12 @@ class CreateController extends AbstractController
);
$this->response->setRequestStatus(false);
- return;
+ return null;
}
$this->setSuccessResponse($view, $ajaxdialog, $request);
- return;
+ return null;
}
$GLOBALS['sql_query'] = $request->getParsedBodyParam('sql_query', '');
@@ -200,6 +201,8 @@ class CreateController extends AbstractController
'view_with_options' => self::VIEW_WITH_OPTIONS,
'view_security_options' => self::VIEW_SECURITY_OPTIONS,
]);
+
+ return null;
}
/** @param mixed[] $view */
diff --git a/src/Routing/Routing.php b/src/Routing/Routing.php
index ab36408634..e2abca08b2 100644
--- a/src/Routing/Routing.php
+++ b/src/Routing/Routing.php
@@ -15,6 +15,7 @@ use PhpMyAdmin\Config;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Console;
use PhpMyAdmin\Controllers\HomeController;
+use PhpMyAdmin\Controllers\InvocableController;
use PhpMyAdmin\Controllers\Setup\MainController;
use PhpMyAdmin\Controllers\Setup\ShowConfigController;
use PhpMyAdmin\Controllers\Setup\ValidateController;
@@ -31,6 +32,7 @@ use Psr\Container\ContainerInterface;
use function __;
use function array_pop;
+use function assert;
use function explode;
use function file_exists;
use function file_put_contents;
@@ -166,11 +168,11 @@ class Routing
return $responseFactory->createResponse(StatusCodeInterface::STATUS_BAD_REQUEST);
}
- /** @psalm-var class-string $controllerName */
+ /** @psalm-var class-string $controllerName */
$controllerName = $routeInfo[1];
- /** @psalm-var callable(ServerRequest): (Response|null) $controller */
$controller = $container->get($controllerName);
+ assert($controller instanceof InvocableController);
return $controller($request->withAttribute('routeVars', $routeInfo[2]));
}
diff --git a/tests/unit/Controllers/AbstractControllerTest.php b/tests/unit/Controllers/AbstractControllerTest.php
index 77e4700d97..0c90435e81 100644
--- a/tests/unit/Controllers/AbstractControllerTest.php
+++ b/tests/unit/Controllers/AbstractControllerTest.php
@@ -8,6 +8,8 @@ use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\MySQLDocumentation;
+use PhpMyAdmin\Http\Response;
+use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
@@ -31,6 +33,11 @@ class AbstractControllerTest extends AbstractTestCase
$response = new ResponseRenderer();
$template = new Template();
$controller = new class ($response, $template) extends AbstractController {
+ public function __invoke(ServerRequest $request): Response|null
+ {
+ return null;
+ }
+
/** @psalm-param non-empty-list $params */
public function testCheckParameters(array $params): bool
{
@@ -59,6 +66,11 @@ class AbstractControllerTest extends AbstractTestCase
$response = new ResponseRenderer();
$controller = new class ($response, new Template()) extends AbstractController {
+ public function __invoke(ServerRequest $request): Response|null
+ {
+ return null;
+ }
+
/** @psalm-param non-empty-list $params */
public function testCheckParameters(array $params): bool
{
@@ -81,6 +93,11 @@ class AbstractControllerTest extends AbstractTestCase
$response->setAjax(true);
$controller = new class ($response, new Template()) extends AbstractController {
+ public function __invoke(ServerRequest $request): Response|null
+ {
+ return null;
+ }
+
/** @psalm-param StatusCodeInterface::STATUS_* $statusCode */
public function testSendErrorResponse(string $message, int $statusCode = 400): void
{
@@ -102,6 +119,11 @@ class AbstractControllerTest extends AbstractTestCase
$response->setAjax(false);
$controller = new class ($response, new Template()) extends AbstractController {
+ public function __invoke(ServerRequest $request): Response|null
+ {
+ return null;
+ }
+
/** @psalm-param StatusCodeInterface::STATUS_* $statusCode */
public function testSendErrorResponse(string $message, int $statusCode = 400): void
{
diff --git a/tests/unit/Controllers/JavaScriptMessagesControllerTest.php b/tests/unit/Controllers/JavaScriptMessagesControllerTest.php
index 0c226fcd39..84d3dc4017 100644
--- a/tests/unit/Controllers/JavaScriptMessagesControllerTest.php
+++ b/tests/unit/Controllers/JavaScriptMessagesControllerTest.php
@@ -7,6 +7,7 @@ namespace PhpMyAdmin\Tests\Controllers;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Controllers\JavaScriptMessagesController;
use PhpMyAdmin\Http\Factory\ResponseFactory;
+use PhpMyAdmin\Http\ServerRequest;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\TestCase;
@@ -19,7 +20,8 @@ class JavaScriptMessagesControllerTest extends TestCase
{
public function testIndex(): void
{
- $response = (new JavaScriptMessagesController(ResponseFactory::create()))();
+ $controller = new JavaScriptMessagesController(ResponseFactory::create());
+ $response = $controller(self::createStub(ServerRequest::class));
$actual = (string) $response->getBody();
self::assertSame(StatusCodeInterface::STATUS_OK, $response->getStatusCode());