Merge pull request #19095 from MauricioFauth/controllers
Create InvocableController interface
This commit is contained in:
commit
5722cdb511
File diff suppressed because it is too large
Load Diff
@ -14,7 +14,7 @@ use PhpMyAdmin\Url;
|
||||
|
||||
use function __;
|
||||
|
||||
abstract class AbstractController
|
||||
abstract class AbstractController implements InvocableController
|
||||
{
|
||||
public function __construct(protected ResponseRenderer $response, protected Template $template)
|
||||
{
|
||||
|
||||
@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers;
|
||||
|
||||
use PhpMyAdmin\BrowseForeigners;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -24,7 +25,7 @@ class BrowseForeignersController extends AbstractController
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): void
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
/** @var string|null $database */
|
||||
$database = $request->getParsedBodyParam('db');
|
||||
@ -42,7 +43,7 @@ class BrowseForeignersController extends AbstractController
|
||||
$foreignFilter = $request->getParsedBodyParam('foreign_filter', '');
|
||||
|
||||
if (! isset($database, $table, $field)) {
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->response->setMinimalFooter();
|
||||
@ -69,5 +70,7 @@ class BrowseForeignersController extends AbstractController
|
||||
$fieldKey,
|
||||
$data,
|
||||
));
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -31,7 +32,7 @@ final class ChangeLogController extends AbstractController
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): void
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
$this->response->disable();
|
||||
$this->response->getHeader()->sendHttpHeaders();
|
||||
@ -52,7 +53,7 @@ final class ChangeLogController extends AbstractController
|
||||
. '" rel="noopener noreferrer" target="_blank">phpmyadmin.net</a>',
|
||||
);
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
// Test if the file is in a compressed format
|
||||
@ -115,5 +116,7 @@ final class ChangeLogController extends AbstractController
|
||||
$this->render('changelog', [
|
||||
'changelog' => preg_replace(array_keys($replaces), $replaces, $changelog),
|
||||
]);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Identifiers\DatabaseName;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
@ -24,7 +25,7 @@ class CheckRelationsController extends AbstractController
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): void
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
$cfgStorageDbName = $this->relation->getConfigurationStorageDbName();
|
||||
|
||||
@ -57,5 +58,7 @@ class CheckRelationsController extends AbstractController
|
||||
'config_storage_database_name' => $cfgStorageDbName,
|
||||
'are_config_storage_tables_defined' => $this->relation->arePmadbTablesDefined(),
|
||||
]);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
@ -17,7 +18,7 @@ final class CollationConnectionController extends AbstractController
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): void
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
$this->config->setUserValue(
|
||||
null,
|
||||
@ -27,5 +28,7 @@ final class CollationConnectionController extends AbstractController
|
||||
);
|
||||
|
||||
$this->response->redirect('index.php?route=/' . Url::getCommonRaw([], '&'));
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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,7 +18,7 @@ final class ColumnController extends AbstractController
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): void
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
/** @var string|null $db */
|
||||
$db = $request->getParsedBodyParam('db');
|
||||
@ -28,9 +29,11 @@ final class ColumnController extends AbstractController
|
||||
$this->response->setRequestStatus(false);
|
||||
$this->response->addJSON(['message' => Message::error()]);
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->response->addJSON(['columns' => $this->dbi->getColumnNames($db, $table)]);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Console\Bookmark;
|
||||
use PhpMyAdmin\Bookmarks\BookmarkRepository;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -24,7 +25,7 @@ final class AddController extends AbstractController
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): void
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
$db = $request->getParsedBodyParam('db');
|
||||
$label = $request->getParsedBodyParam('label');
|
||||
@ -34,7 +35,7 @@ final class AddController extends AbstractController
|
||||
if (! is_string($label) || ! is_string($db) || ! is_string($bookmarkQuery) || ! is_string($shared)) {
|
||||
$this->response->addJSON('message', __('Incomplete params'));
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
$bookmark = $this->bookmarkRepository->createBookmark(
|
||||
@ -47,7 +48,7 @@ final class AddController extends AbstractController
|
||||
if ($bookmark === false || ! $bookmark->save()) {
|
||||
$this->response->addJSON('message', __('Failed'));
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
$bookmarkFields = [
|
||||
@ -60,5 +61,7 @@ final class AddController extends AbstractController
|
||||
$this->response->addJSON('message', __('Succeeded'));
|
||||
$this->response->addJSON('data', $bookmarkFields);
|
||||
$this->response->addJSON('isShared', $shared === 'true');
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Console\Bookmark;
|
||||
|
||||
use PhpMyAdmin\Console;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -20,8 +21,10 @@ final class RefreshController extends AbstractController
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): void
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
$this->response->addJSON('console_message_bookmark', $this->console->getBookmarkContent());
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Database\CentralColumns;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Database\CentralColumns;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -21,12 +22,14 @@ final class PopulateColumnsController extends AbstractController
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): void
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
$columns = $this->centralColumns->getColumnsNotInCentralList(
|
||||
Current::$database,
|
||||
$request->getParsedBodyParam('selectedTable'),
|
||||
);
|
||||
$this->render('database/central_columns/populate_columns', ['columns' => $columns]);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ namespace PhpMyAdmin\Controllers\Database;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Database\CentralColumns;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Identifiers\DatabaseName;
|
||||
use PhpMyAdmin\LanguageManager;
|
||||
@ -34,7 +35,7 @@ class CentralColumnsController extends AbstractController
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): void
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
$GLOBALS['message'] ??= null;
|
||||
$db = DatabaseName::from($request->getParam('db'));
|
||||
@ -54,7 +55,7 @@ class CentralColumnsController extends AbstractController
|
||||
$db,
|
||||
));
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($request->hasBodyParam('add_new_column')) {
|
||||
@ -78,7 +79,7 @@ class CentralColumnsController extends AbstractController
|
||||
$request->getParsedBodyParam('cur_table', ''),
|
||||
));
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($request->hasBodyParam('add_column')) {
|
||||
@ -102,7 +103,7 @@ class CentralColumnsController extends AbstractController
|
||||
'db' => $request->getParsedBodyParam('db'),
|
||||
]);
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($request->hasBodyParam('multi_edit_central_column_save')) {
|
||||
@ -152,10 +153,12 @@ class CentralColumnsController extends AbstractController
|
||||
sprintf(__('Showing rows %1$s - %2$s.'), $pos + 1, $pos + $numberOfColumns),
|
||||
);
|
||||
if (! isset($tmpMsg) || $tmpMsg === true) {
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
$GLOBALS['message'] = $tmpMsg;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function main(string $totalRows, string $position, DatabaseName $db): void
|
||||
|
||||
@ -8,6 +8,7 @@ use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Index;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
@ -30,10 +31,10 @@ class DataDictionaryController extends AbstractController
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): void
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
if (! $this->checkParameters(['db'], true)) {
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
@ -111,5 +112,7 @@ class DataDictionaryController extends AbstractController
|
||||
'comment' => $comment,
|
||||
'tables' => $tables,
|
||||
]);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Database\Designer;
|
||||
use PhpMyAdmin\Database\Designer\Common as DesignerCommon;
|
||||
use PhpMyAdmin\DbTableExists;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Identifiers\DatabaseName;
|
||||
use PhpMyAdmin\LanguageManager;
|
||||
@ -37,7 +38,7 @@ class DesignerController 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;
|
||||
@ -83,7 +84,7 @@ class DesignerController extends AbstractController
|
||||
$this->response->addHTML($html);
|
||||
}
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($request->hasBodyParam('operation')) {
|
||||
@ -105,7 +106,7 @@ class DesignerController extends AbstractController
|
||||
);
|
||||
$this->response->setRequestStatus(false);
|
||||
|
||||
return;
|
||||
return null;
|
||||
} else {
|
||||
$page = $this->designerCommon->createNewPage($request->getParsedBodyParam('selected_value'), $db);
|
||||
$this->response->addJSON('id', $page);
|
||||
@ -150,11 +151,11 @@ class DesignerController extends AbstractController
|
||||
$this->response->setRequestStatus($success);
|
||||
}
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
if (! $this->checkParameters(['db'])) {
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
$GLOBALS['errorUrl'] = Util::getScriptNameForOption(
|
||||
@ -169,12 +170,12 @@ class DesignerController 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;
|
||||
}
|
||||
|
||||
$scriptDisplayField = $this->designerCommon->getTablesInfo();
|
||||
@ -256,5 +257,7 @@ class DesignerController extends AbstractController
|
||||
$this->response->addHTML($mainHtml);
|
||||
|
||||
$this->response->addHTML('<div id="PMA_disable_floating_menubar"></div>');
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Database\Events;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\DbTableExists;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Identifiers\DatabaseName;
|
||||
use PhpMyAdmin\LanguageManager;
|
||||
@ -38,7 +39,7 @@ final class EventsController 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;
|
||||
@ -47,7 +48,7 @@ final class EventsController extends AbstractController
|
||||
|
||||
if (! $request->isAjax()) {
|
||||
if (! $this->checkParameters(['db'])) {
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
$GLOBALS['errorUrl'] = Util::getScriptNameForOption(
|
||||
@ -60,7 +61,7 @@ final class EventsController extends AbstractController
|
||||
if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) {
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
} elseif (Current::$database !== '') {
|
||||
$this->dbi->selectDb(Current::$database);
|
||||
@ -111,7 +112,7 @@ final class EventsController extends AbstractController
|
||||
|
||||
$this->response->addJSON('tableType', 'events');
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -184,12 +185,12 @@ final class EventsController extends AbstractController
|
||||
$this->response->addJSON('message', $editor);
|
||||
$this->response->addJSON('title', $title);
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->response->addHTML("\n\n<h2>" . $title . "</h2>\n\n" . $editor);
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
$message = __('Error in processing request:') . ' ';
|
||||
@ -203,7 +204,7 @@ final class EventsController extends AbstractController
|
||||
$this->response->setRequestStatus(false);
|
||||
$this->response->addJSON('message', $message);
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->response->addHTML($message->getDisplay());
|
||||
@ -226,7 +227,7 @@ final class EventsController extends AbstractController
|
||||
$this->response->addJSON('message', $exportData);
|
||||
$this->response->addJSON('title', $title);
|
||||
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
$output = '<div class="container">';
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<h2>" . $title . "</h2>\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<h2>" . __('Execute routine') . "</h2>\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 = '<div class="container">';
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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[][][] */
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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 */
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
13
src/Controllers/InvocableController.php
Normal file
13
src/Controllers/InvocableController.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers;
|
||||
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
|
||||
interface InvocableController
|
||||
{
|
||||
public function __invoke(ServerRequest $request): Response|null;
|
||||
}
|
||||
@ -8,6 +8,7 @@ use Fig\Http\Message\StatusCodeInterface;
|
||||
use JsonException;
|
||||
use PhpMyAdmin\Http\Factory\ResponseFactory;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
|
||||
use function __;
|
||||
use function _pgettext;
|
||||
@ -21,13 +22,13 @@ use const JSON_THROW_ON_ERROR;
|
||||
/**
|
||||
* Exporting of translated messages from PHP to JavaScript.
|
||||
*/
|
||||
final class JavaScriptMessagesController
|
||||
final class JavaScriptMessagesController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseFactory $responseFactory)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(): Response
|
||||
public function __invoke(ServerRequest $request): Response
|
||||
{
|
||||
$response = $this->responseFactory->createResponse()
|
||||
->withHeader('Content-Type', 'text/javascript; charset=UTF-8')
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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 = '<option selected disabled>' . __('Select one…') . '</option>'
|
||||
. '<option value="no_such_col">' . __('No such column') . '</option>';
|
||||
@ -32,5 +33,7 @@ final class GetColumnsController extends AbstractController
|
||||
_pgettext('string types', 'String'),
|
||||
);
|
||||
$this->response->addHTML($html);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user