Merge pull request #19104 from MauricioFauth/abstract-controller-removal
Remove the Controllers\AbstractController abstract class
This commit is contained in:
commit
0777b61b77
File diff suppressed because it is too large
Load Diff
@ -1385,11 +1385,6 @@ parameters:
|
||||
count: 3
|
||||
path: src/ConfigStorage/UserGroups.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$params of static method PhpMyAdmin\\\\Url\\:\\:getCommonRaw\\(\\) expects array\\<int\\|string, bool\\|int\\|string\\>, array\\<string, mixed\\> given\\.$#"
|
||||
count: 1
|
||||
path: src/Controllers/AbstractController.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$table of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:getColumnsNotInCentralList\\(\\) expects string, mixed given\\.$#"
|
||||
count: 1
|
||||
@ -1456,7 +1451,7 @@ parameters:
|
||||
path: src/Controllers/Database/CentralColumnsController.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$templateData of method PhpMyAdmin\\\\Controllers\\\\AbstractController\\:\\:render\\(\\) expects array\\<string, mixed\\>, array given\\.$#"
|
||||
message: "#^Parameter \\#2 \\$templateData of method PhpMyAdmin\\\\ResponseRenderer\\:\\:render\\(\\) expects array\\<string, mixed\\>, array given\\.$#"
|
||||
count: 1
|
||||
path: src/Controllers/Database/CentralColumnsController.php
|
||||
|
||||
@ -4036,7 +4031,7 @@ parameters:
|
||||
path: src/Controllers/Table/ChangeController.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$files of method PhpMyAdmin\\\\Controllers\\\\AbstractController\\:\\:addScriptFiles\\(\\) expects array\\<string\\>, mixed given\\.$#"
|
||||
message: "#^Parameter \\#1 \\$files of method PhpMyAdmin\\\\ResponseRenderer\\:\\:addScriptFiles\\(\\) expects array\\<int, string\\>, mixed given\\.$#"
|
||||
count: 1
|
||||
path: src/Controllers/Table/ChangeController.php
|
||||
|
||||
@ -12675,6 +12670,11 @@ parameters:
|
||||
count: 1
|
||||
path: src/ResponseRenderer.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$params of static method PhpMyAdmin\\\\Url\\:\\:getCommonRaw\\(\\) expects array\\<int\\|string, bool\\|int\\|string\\>, array\\<string, mixed\\> given\\.$#"
|
||||
count: 1
|
||||
path: src/ResponseRenderer.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$string of function mb_strlen expects string, mixed given\\.$#"
|
||||
count: 1
|
||||
|
||||
@ -839,11 +839,6 @@
|
||||
<code><![CDATA[Config::getInstance()]]></code>
|
||||
</DeprecatedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/AbstractController.php">
|
||||
<MixedArgumentTypeCoercion>
|
||||
<code><![CDATA[$params]]></code>
|
||||
</MixedArgumentTypeCoercion>
|
||||
</file>
|
||||
<file src="src/Controllers/BrowseForeignersController.php">
|
||||
<PossiblyUnusedReturnValue>
|
||||
<code><![CDATA[Response|null]]></code>
|
||||
@ -1140,6 +1135,9 @@
|
||||
<code><![CDATA[$request->getParam('db')]]></code>
|
||||
<code><![CDATA[$request->getParsedBodyParam('sql_query')]]></code>
|
||||
</MixedArgument>
|
||||
<PossiblyUnusedMethod>
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Database/MultiTableQuery/TablesController.php">
|
||||
<PossiblyUnusedReturnValue>
|
||||
@ -1335,6 +1333,16 @@
|
||||
<code><![CDATA[Response|null]]></code>
|
||||
</PossiblyUnusedReturnValue>
|
||||
</file>
|
||||
<file src="src/Controllers/Database/SqlFormatController.php">
|
||||
<PossiblyUnusedMethod>
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Database/Structure/AddPrefixController.php">
|
||||
<PossiblyUnusedMethod>
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Database/Structure/AddPrefixTableController.php">
|
||||
<MixedOperand>
|
||||
<code><![CDATA[$request->getParsedBodyParam('add_prefix', '')]]></code>
|
||||
@ -1364,10 +1372,18 @@
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Database/Structure/ChangePrefixFormController.php">
|
||||
<PossiblyUnusedMethod>
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Database/Structure/CopyFormController.php">
|
||||
<DeprecatedMethod>
|
||||
<code><![CDATA[DatabaseInterface::getInstance()]]></code>
|
||||
</DeprecatedMethod>
|
||||
<PossiblyUnusedMethod>
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Database/Structure/CopyTableController.php">
|
||||
<MixedArgument>
|
||||
@ -1409,6 +1425,11 @@
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Database/Structure/EmptyFormController.php">
|
||||
<PossiblyUnusedMethod>
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Database/Structure/EmptyTableController.php">
|
||||
<DeprecatedMethod>
|
||||
<code><![CDATA[Config::getInstance()]]></code>
|
||||
@ -1645,6 +1666,11 @@
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Export/CheckTimeOutController.php">
|
||||
<PossiblyUnusedMethod>
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Export/ExportController.php">
|
||||
<ArgumentTypeCoercion>
|
||||
<code><![CDATA[$exportPlugin]]></code>
|
||||
@ -2047,6 +2073,11 @@
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/LicenseController.php">
|
||||
<PossiblyUnusedMethod>
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/LintController.php">
|
||||
<MixedAssignment>
|
||||
<code><![CDATA[$options]]></code>
|
||||
@ -2317,6 +2348,9 @@
|
||||
<DeprecatedMethod>
|
||||
<code><![CDATA[Config::getInstance()]]></code>
|
||||
</DeprecatedMethod>
|
||||
<PossiblyUnusedMethod>
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Preferences/ExportController.php">
|
||||
<DeprecatedMethod>
|
||||
@ -2520,6 +2554,11 @@
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/RecentTablesListController.php">
|
||||
<PossiblyUnusedMethod>
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/SchemaExportController.php">
|
||||
<PossiblyUnusedReturnValue>
|
||||
<code><![CDATA[Response|null]]></code>
|
||||
@ -3061,6 +3100,11 @@
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Sql/DefaultForeignKeyCheckValueController.php">
|
||||
<PossiblyUnusedMethod>
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Sql/EnumValuesController.php">
|
||||
<MixedAssignment>
|
||||
<code><![CDATA[$column]]></code>
|
||||
@ -4056,6 +4100,9 @@
|
||||
<code><![CDATA[$column]]></code>
|
||||
<code><![CDATA[$columnsNames]]></code>
|
||||
</MixedAssignment>
|
||||
<PossiblyUnusedMethod>
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
<RiskyTruthyFalsyComparison>
|
||||
<code><![CDATA[! Context::isKeyword(trim($column), true)]]></code>
|
||||
<code><![CDATA[Context::isKeyword(trim(Current::$table), true)]]></code>
|
||||
@ -10249,6 +10296,9 @@
|
||||
<code><![CDATA[$GLOBALS['focus_querywindow']]]></code>
|
||||
<code><![CDATA[$GLOBALS['reload']]]></code>
|
||||
</InvalidArrayOffset>
|
||||
<MixedArgumentTypeCoercion>
|
||||
<code><![CDATA[$params]]></code>
|
||||
</MixedArgumentTypeCoercion>
|
||||
<MixedAssignment>
|
||||
<code><![CDATA[$value]]></code>
|
||||
</MixedAssignment>
|
||||
|
||||
@ -1,105 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers;
|
||||
|
||||
use Fig\Http\Message\StatusCodeInterface;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Html\MySQLDocumentation;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
|
||||
use function __;
|
||||
|
||||
abstract class AbstractController implements InvocableController
|
||||
{
|
||||
public function __construct(protected ResponseRenderer $response, protected Template $template)
|
||||
{
|
||||
}
|
||||
|
||||
/** @param array<string, mixed> $templateData */
|
||||
protected function render(string $templatePath, array $templateData = []): void
|
||||
{
|
||||
$this->response->addHTML($this->template->render($templatePath, $templateData));
|
||||
}
|
||||
|
||||
/** @param string[] $files */
|
||||
protected function addScriptFiles(array $files): void
|
||||
{
|
||||
$header = $this->response->getHeader();
|
||||
$scripts = $header->getScripts();
|
||||
$scripts->addFiles($files);
|
||||
}
|
||||
|
||||
/** @param array<string, mixed> $params */
|
||||
protected function redirect(string $route, array $params = []): void
|
||||
{
|
||||
$this->response->redirect('./index.php?route=' . $route . Url::getCommonRaw($params, '&'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Function added to avoid path disclosures.
|
||||
* Called by each script that needs parameters.
|
||||
*
|
||||
* @param bool $request Check parameters in request
|
||||
* @psalm-param non-empty-list<non-empty-string> $params The names of the parameters needed by the calling script
|
||||
*/
|
||||
protected function checkParameters(array $params, bool $request = false): bool
|
||||
{
|
||||
$foundError = false;
|
||||
$errorMessage = '';
|
||||
$array = $request ? $_REQUEST : $GLOBALS;
|
||||
|
||||
foreach ($params as $param) {
|
||||
if (isset($array[$param]) && $array[$param] !== '') {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (! $request && $param === 'server' && Current::$server > 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (! $request && $param === 'db' && Current::$database !== '') {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (! $request && $param === 'table' && Current::$table !== '') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$errorMessage .=
|
||||
__('Missing parameter:') . ' '
|
||||
. $param
|
||||
. MySQLDocumentation::showDocumentation('faq', 'faqmissingparameters', true)
|
||||
. '[br]';
|
||||
$foundError = true;
|
||||
}
|
||||
|
||||
if ($foundError) {
|
||||
$this->response->setStatusCode(StatusCodeInterface::STATUS_BAD_REQUEST);
|
||||
$this->response->setRequestStatus(false);
|
||||
$this->response->addHTML(Message::error($errorMessage)->getDisplay());
|
||||
}
|
||||
|
||||
return ! $foundError;
|
||||
}
|
||||
|
||||
/** @psalm-param StatusCodeInterface::STATUS_* $statusCode */
|
||||
protected function sendErrorResponse(string $message, int $statusCode = 400): void
|
||||
{
|
||||
$this->response->setStatusCode($statusCode);
|
||||
$this->response->setRequestStatus(false);
|
||||
|
||||
if ($this->response->isAjax()) {
|
||||
$this->response->addJSON('isErrorResponse', true);
|
||||
$this->response->addJSON('message', $message);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$this->response->addHTML(Message::error($message)->getDisplay());
|
||||
}
|
||||
}
|
||||
@ -9,20 +9,17 @@ use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
/**
|
||||
* Display selection for relational field values
|
||||
*/
|
||||
class BrowseForeignersController extends AbstractController
|
||||
final class BrowseForeignersController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private BrowseForeigners $browseForeigners,
|
||||
private Relation $relation,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly BrowseForeigners $browseForeigners,
|
||||
private readonly Relation $relation,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -9,7 +9,6 @@ use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
|
||||
use function __;
|
||||
@ -25,11 +24,10 @@ use function printf;
|
||||
use function readgzfile;
|
||||
use function str_ends_with;
|
||||
|
||||
final class ChangeLogController extends AbstractController
|
||||
final class ChangeLogController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private readonly Config $config)
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly Config $config)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -113,7 +111,7 @@ final class ChangeLogController extends AbstractController
|
||||
|
||||
$this->response->addHeader('Content-Type', 'text/html; charset=utf-8');
|
||||
|
||||
$this->render('changelog', [
|
||||
$this->response->render('changelog', [
|
||||
'changelog' => preg_replace(array_keys($replaces), $replaces, $changelog),
|
||||
]);
|
||||
|
||||
|
||||
@ -11,18 +11,16 @@ use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Identifiers\DatabaseName;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use const SQL_DIR;
|
||||
|
||||
/**
|
||||
* Displays status of phpMyAdmin configuration storage
|
||||
*/
|
||||
class CheckRelationsController extends AbstractController
|
||||
final class CheckRelationsController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Relation $relation)
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly Relation $relation)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -50,7 +48,7 @@ class CheckRelationsController extends AbstractController
|
||||
// Do not use any previous $relationParameters value as it could have changed after a successful fixPmaTables()
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('relation/check_relations', [
|
||||
$this->response->render('relation/check_relations', [
|
||||
'db' => $db?->getName() ?? '',
|
||||
'zero_conf' => Config::getInstance()->settings['ZeroConf'],
|
||||
'relation_parameters' => $relationParameters->toArray(),
|
||||
|
||||
@ -8,14 +8,12 @@ use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
|
||||
final class CollationConnectionController extends AbstractController
|
||||
final class CollationConnectionController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Config $config)
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly Config $config)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -9,13 +9,11 @@ use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
final class ColumnController extends AbstractController
|
||||
final class ColumnController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private DatabaseInterface $dbi)
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly DatabaseInterface $dbi)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -6,23 +6,20 @@ namespace PhpMyAdmin\Controllers\Console\Bookmark;
|
||||
|
||||
use PhpMyAdmin\Bookmarks\BookmarkRepository;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function __;
|
||||
use function is_string;
|
||||
|
||||
final class AddController extends AbstractController
|
||||
final class AddController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly BookmarkRepository $bookmarkRepository,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -5,20 +5,15 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Console\Bookmark;
|
||||
|
||||
use PhpMyAdmin\Console;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
final class RefreshController extends AbstractController
|
||||
final class RefreshController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Console $console,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly Console $console)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -7,21 +7,21 @@ namespace PhpMyAdmin\Controllers\Console;
|
||||
use Fig\Http\Message\StatusCodeInterface;
|
||||
use InvalidArgumentException;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function __;
|
||||
use function in_array;
|
||||
use function is_numeric;
|
||||
|
||||
final class UpdateConfigController extends AbstractController
|
||||
final class UpdateConfigController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Config $config)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Config $config,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response
|
||||
|
||||
@ -4,22 +4,19 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\CentralColumns;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Database\CentralColumns;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
final class PopulateColumnsController extends AbstractController
|
||||
final class PopulateColumnsController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private CentralColumns $centralColumns,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly CentralColumns $centralColumns,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -28,7 +25,7 @@ final class PopulateColumnsController extends AbstractController
|
||||
Current::$database,
|
||||
$request->getParsedBodyParam('selectedTable'),
|
||||
);
|
||||
$this->render('database/central_columns/populate_columns', ['columns' => $columns]);
|
||||
$this->response->render('database/central_columns/populate_columns', ['columns' => $columns]);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Database;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Database\CentralColumns;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
@ -16,7 +16,6 @@ use PhpMyAdmin\Identifiers\DatabaseName;
|
||||
use PhpMyAdmin\LanguageManager;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use Webmozart\Assert\Assert;
|
||||
|
||||
use function __;
|
||||
@ -25,14 +24,12 @@ use function is_numeric;
|
||||
use function parse_str;
|
||||
use function sprintf;
|
||||
|
||||
class CentralColumnsController extends AbstractController
|
||||
final class CentralColumnsController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private CentralColumns $centralColumns,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly CentralColumns $centralColumns,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -91,7 +88,7 @@ class CentralColumnsController extends AbstractController
|
||||
);
|
||||
}
|
||||
|
||||
$this->addScriptFiles([
|
||||
$this->response->addScriptFiles([
|
||||
'vendor/jquery/jquery.uitablefilter.js',
|
||||
'vendor/jquery/jquery.tablesorter.js',
|
||||
'database/central_columns.js',
|
||||
@ -181,7 +178,7 @@ class CentralColumnsController extends AbstractController
|
||||
LanguageManager::$textDir,
|
||||
);
|
||||
|
||||
$this->render('database/central_columns/main', $variables);
|
||||
$this->response->render('database/central_columns/main', $variables);
|
||||
}
|
||||
|
||||
/** @return true|Message */
|
||||
@ -256,7 +253,7 @@ class CentralColumnsController extends AbstractController
|
||||
Assert::allString($params['selected_fld']);
|
||||
$rows = $this->centralColumns->getHtmlForEditingPage($params['selected_fld'], $params['db']);
|
||||
|
||||
$this->render('database/central_columns/edit', ['rows' => $rows]);
|
||||
$this->response->render('database/central_columns/edit', ['rows' => $rows]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -5,35 +5,32 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Database;
|
||||
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Index;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Transformations;
|
||||
use PhpMyAdmin\Util;
|
||||
|
||||
use function is_array;
|
||||
use function str_replace;
|
||||
|
||||
class DataDictionaryController extends AbstractController
|
||||
final class DataDictionaryController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Relation $relation,
|
||||
private Transformations $transformations,
|
||||
private DatabaseInterface $dbi,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Relation $relation,
|
||||
private readonly Transformations $transformations,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
if (! $this->checkParameters(['db'], true)) {
|
||||
if (! $this->response->checkParameters(['db'], true)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -107,7 +104,7 @@ class DataDictionaryController extends AbstractController
|
||||
];
|
||||
}
|
||||
|
||||
$this->render('database/data_dictionary/index', [
|
||||
$this->response->render('database/data_dictionary/index', [
|
||||
'database' => Current::$database,
|
||||
'comment' => $comment,
|
||||
'tables' => $tables,
|
||||
|
||||
@ -5,7 +5,7 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Database;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Database\Designer;
|
||||
use PhpMyAdmin\Database\Designer\Common as DesignerCommon;
|
||||
@ -26,16 +26,15 @@ use function in_array;
|
||||
use function json_encode;
|
||||
use function sprintf;
|
||||
|
||||
class DesignerController extends AbstractController
|
||||
final class DesignerController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Designer $databaseDesigner,
|
||||
private DesignerCommon $designerCommon,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Template $template,
|
||||
private readonly Designer $databaseDesigner,
|
||||
private readonly DesignerCommon $designerCommon,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -154,7 +153,7 @@ class DesignerController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
if (! $this->checkParameters(['db'])) {
|
||||
if (! $this->response->checkParameters(['db'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -173,7 +172,7 @@ class DesignerController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
$this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -223,7 +222,7 @@ class DesignerController extends AbstractController
|
||||
$header = $this->response->getHeader();
|
||||
$header->setBodyId('designer_body');
|
||||
|
||||
$this->addScriptFiles(['designer/init.js']);
|
||||
$this->response->addScriptFiles(['designer/init.js']);
|
||||
|
||||
$columnsType = $this->databaseDesigner->getColumnTypes($tableColumn, $tablesAllKeys);
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Database;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Database\Events;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
@ -27,16 +27,15 @@ use function mb_strtoupper;
|
||||
use function sprintf;
|
||||
use function trim;
|
||||
|
||||
final class EventsController extends AbstractController
|
||||
final class EventsController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Events $events,
|
||||
private DatabaseInterface $dbi,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Template $template,
|
||||
private readonly Events $events,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -44,10 +43,10 @@ final class EventsController extends AbstractController
|
||||
$GLOBALS['errors'] ??= null;
|
||||
$GLOBALS['errorUrl'] ??= null;
|
||||
|
||||
$this->addScriptFiles(['database/events.js', 'sql.js']);
|
||||
$this->response->addScriptFiles(['database/events.js', 'sql.js']);
|
||||
|
||||
if (! $request->isAjax()) {
|
||||
if (! $this->checkParameters(['db'])) {
|
||||
if (! $this->response->checkParameters(['db'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -59,7 +58,7 @@ final class EventsController extends AbstractController
|
||||
|
||||
$databaseName = DatabaseName::tryFrom($request->getParam('db'));
|
||||
if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) {
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
$this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -258,7 +257,7 @@ final class EventsController extends AbstractController
|
||||
|
||||
$items = $this->events->getDetails(Current::$database);
|
||||
|
||||
$this->render('database/events/index', [
|
||||
$this->response->render('database/events/index', [
|
||||
'db' => Current::$database,
|
||||
'items' => $items,
|
||||
'has_privilege' => Util::currentUserHasPrivilege('EVENT', Current::$database),
|
||||
|
||||
@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Database;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Config\PageSettings;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DbTableExists;
|
||||
use PhpMyAdmin\Export\Export;
|
||||
@ -17,7 +17,6 @@ use PhpMyAdmin\Identifiers\DatabaseName;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\Plugins;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
|
||||
@ -26,17 +25,15 @@ use function array_merge;
|
||||
use function count;
|
||||
use function is_array;
|
||||
|
||||
final class ExportController extends AbstractController
|
||||
final class ExportController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Export $export,
|
||||
private Options $exportOptions,
|
||||
private PageSettings $pageSettings,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Export $export,
|
||||
private readonly Options $exportOptions,
|
||||
private readonly PageSettings $pageSettings,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -50,9 +47,9 @@ final class ExportController extends AbstractController
|
||||
$pageSettingsErrorHtml = $this->pageSettings->getErrorHTML();
|
||||
$pageSettingsHtml = $this->pageSettings->getHTML();
|
||||
|
||||
$this->addScriptFiles(['export.js']);
|
||||
$this->response->addScriptFiles(['export.js']);
|
||||
|
||||
if (! $this->checkParameters(['db'])) {
|
||||
if (! $this->response->checkParameters(['db'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -71,7 +68,7 @@ final class ExportController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
$this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -166,7 +163,7 @@ final class ExportController extends AbstractController
|
||||
$exportList,
|
||||
);
|
||||
|
||||
$this->render('database/export/index', array_merge($options, [
|
||||
$this->response->render('database/export/index', array_merge($options, [
|
||||
'page_settings_error_html' => $pageSettingsErrorHtml,
|
||||
'page_settings_html' => $pageSettingsHtml,
|
||||
'structure_or_data_forced' => $request->getParsedBodyParam('structure_or_data_forced', 0),
|
||||
|
||||
@ -7,7 +7,7 @@ namespace PhpMyAdmin\Controllers\Database;
|
||||
use PhpMyAdmin\Charsets;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Config\PageSettings;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\DbTableExists;
|
||||
@ -21,7 +21,6 @@ use PhpMyAdmin\Import\ImportSettings;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\Plugins;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
use PhpMyAdmin\Utils\ForeignKey;
|
||||
@ -29,16 +28,14 @@ use PhpMyAdmin\Utils\ForeignKey;
|
||||
use function __;
|
||||
use function is_numeric;
|
||||
|
||||
final class ImportController extends AbstractController
|
||||
final class ImportController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private DatabaseInterface $dbi,
|
||||
private PageSettings $pageSettings,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly PageSettings $pageSettings,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -50,9 +47,9 @@ final class ImportController extends AbstractController
|
||||
$pageSettingsErrorHtml = $this->pageSettings->getErrorHTML();
|
||||
$pageSettingsHtml = $this->pageSettings->getHTML();
|
||||
|
||||
$this->addScriptFiles(['import.js']);
|
||||
$this->response->addScriptFiles(['import.js']);
|
||||
|
||||
if (! $this->checkParameters(['db'])) {
|
||||
if (! $this->response->checkParameters(['db'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -69,7 +66,7 @@ final class ImportController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
$this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -110,7 +107,7 @@ final class ImportController extends AbstractController
|
||||
$isAllowInterruptChecked = Plugins::checkboxCheck('Import', 'allow_interrupt');
|
||||
$maxUploadSize = (int) $config->get('max_upload_size');
|
||||
|
||||
$this->render('database/import/index', [
|
||||
$this->response->render('database/import/index', [
|
||||
'page_settings_error_html' => $pageSettingsErrorHtml,
|
||||
'page_settings_html' => $pageSettingsHtml,
|
||||
'upload_id' => $uploadId,
|
||||
|
||||
@ -4,13 +4,18 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\MultiTableQuery;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Database\MultiTableQuery;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
|
||||
final class QueryController extends AbstractController
|
||||
final class QueryController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseRenderer $response)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
$this->response->addHTML(MultiTableQuery::displayResults(
|
||||
|
||||
@ -4,22 +4,20 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\MultiTableQuery;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Query\Generator as QueryGenerator;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function array_map;
|
||||
use function implode;
|
||||
|
||||
final class TablesController extends AbstractController
|
||||
final class TablesController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private DatabaseInterface $dbi)
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly DatabaseInterface $dbi)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,7 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Database\MultiTableQuery;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
@ -16,16 +16,18 @@ use PhpMyAdmin\Template;
|
||||
/**
|
||||
* Handles database multi-table querying
|
||||
*/
|
||||
class MultiTableQueryController extends AbstractController
|
||||
final class MultiTableQueryController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private DatabaseInterface $dbi)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Template $template,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
$this->addScriptFiles(['database/multi_table_query.js', 'database/query_generator.js']);
|
||||
$this->response->addScriptFiles(['database/multi_table_query.js', 'database/query_generator.js']);
|
||||
|
||||
$queryInstance = new MultiTableQuery($this->dbi, $this->template, Current::$database);
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Database;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
@ -18,7 +18,6 @@ use PhpMyAdmin\LanguageManager;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Server\Privileges;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Util;
|
||||
|
||||
use function __;
|
||||
@ -27,15 +26,13 @@ use function mb_strtolower;
|
||||
/**
|
||||
* Controller for database privileges
|
||||
*/
|
||||
class PrivilegesController extends AbstractController
|
||||
final class PrivilegesController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Privileges $privileges,
|
||||
private DatabaseInterface $dbi,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Privileges $privileges,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -51,7 +48,7 @@ class PrivilegesController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->addScriptFiles(['server/privileges.js', 'vendor/zxcvbn-ts.js']);
|
||||
$this->response->addScriptFiles(['server/privileges.js', 'vendor/zxcvbn-ts.js']);
|
||||
|
||||
/**
|
||||
* Checks if the user is allowed to do what they try to...
|
||||
@ -60,7 +57,7 @@ class PrivilegesController extends AbstractController
|
||||
$isCreateUser = $this->dbi->isCreateUser();
|
||||
|
||||
if (! $this->dbi->isSuperUser() && ! $isGrantUser && ! $isCreateUser) {
|
||||
$this->render('server/sub_page_header', ['type' => 'privileges', 'is_image' => false]);
|
||||
$this->response->render('server/sub_page_header', ['type' => 'privileges', 'is_image' => false]);
|
||||
$this->response->addHTML(
|
||||
Message::error(__('No Privileges'))
|
||||
->getDisplay(),
|
||||
@ -82,7 +79,7 @@ class PrivilegesController extends AbstractController
|
||||
$privileges = $this->privileges->getAllPrivileges($db);
|
||||
}
|
||||
|
||||
$this->render('database/privileges/index', [
|
||||
$this->response->render('database/privileges/index', [
|
||||
'is_superuser' => $this->dbi->isSuperUser(),
|
||||
'db' => $db->getName(),
|
||||
'database_url' => $scriptName,
|
||||
@ -91,7 +88,7 @@ class PrivilegesController extends AbstractController
|
||||
'is_grantuser' => $this->dbi->isGrantUser(),
|
||||
'privileges' => $privileges,
|
||||
]);
|
||||
$this->render('export_modal');
|
||||
$this->response->render('export_modal', []);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Database;
|
||||
|
||||
use PhpMyAdmin\Charsets;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Database\Routines;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
@ -35,17 +35,16 @@ use const ENT_QUOTES;
|
||||
/**
|
||||
* Routines management.
|
||||
*/
|
||||
class RoutinesController extends AbstractController
|
||||
final class RoutinesController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private UserPrivilegesFactory $userPrivilegesFactory,
|
||||
private DatabaseInterface $dbi,
|
||||
private Routines $routines,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Template $template,
|
||||
private readonly UserPrivilegesFactory $userPrivilegesFactory,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly Routines $routines,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -54,7 +53,7 @@ class RoutinesController extends AbstractController
|
||||
$GLOBALS['errorUrl'] ??= null;
|
||||
$GLOBALS['urlParams'] ??= null;
|
||||
|
||||
$this->addScriptFiles(['database/routines.js', 'sql.js']);
|
||||
$this->response->addScriptFiles(['database/routines.js', 'sql.js']);
|
||||
|
||||
$type = $_REQUEST['type'] ?? null;
|
||||
|
||||
@ -66,7 +65,7 @@ class RoutinesController extends AbstractController
|
||||
* Displays the header and tabs
|
||||
*/
|
||||
if (Current::$table !== '' && in_array(Current::$table, $this->dbi->getTables(Current::$database), true)) {
|
||||
if (! $this->checkParameters(['db', 'table'])) {
|
||||
if (! $this->response->checkParameters(['db', 'table'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -76,21 +75,24 @@ class RoutinesController extends AbstractController
|
||||
|
||||
$databaseName = DatabaseName::tryFrom($request->getParam('db'));
|
||||
if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) {
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
$this->response->redirectToRoute(
|
||||
'/',
|
||||
['reload' => true, 'message' => __('No databases selected.')],
|
||||
);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
$tableName = TableName::tryFrom($request->getParam('table'));
|
||||
if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) {
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
|
||||
$this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]);
|
||||
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
Current::$table = '';
|
||||
|
||||
if (! $this->checkParameters(['db'])) {
|
||||
if (! $this->response->checkParameters(['db'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -102,7 +104,10 @@ class RoutinesController extends AbstractController
|
||||
|
||||
$databaseName = DatabaseName::tryFrom($request->getParam('db'));
|
||||
if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) {
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
$this->response->redirectToRoute(
|
||||
'/',
|
||||
['reload' => true, 'message' => __('No databases selected.')],
|
||||
);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -481,7 +486,7 @@ class RoutinesController extends AbstractController
|
||||
);
|
||||
}
|
||||
|
||||
$this->render('database/routines/index', [
|
||||
$this->response->render('database/routines/index', [
|
||||
'db' => Current::$database,
|
||||
'table' => Current::$table,
|
||||
'has_any_routines' => $items !== [],
|
||||
|
||||
@ -5,7 +5,7 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Database;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Database\Search;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
@ -22,15 +22,14 @@ use PhpMyAdmin\Util;
|
||||
|
||||
use function __;
|
||||
|
||||
class SearchController extends AbstractController
|
||||
final class SearchController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private DatabaseInterface $dbi,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Template $template,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -38,9 +37,9 @@ class SearchController extends AbstractController
|
||||
$GLOBALS['errorUrl'] ??= null;
|
||||
$GLOBALS['urlParams'] ??= null;
|
||||
|
||||
$this->addScriptFiles(['database/search.js', 'sql.js', 'makegrid.js']);
|
||||
$this->response->addScriptFiles(['database/search.js', 'sql.js', 'makegrid.js']);
|
||||
|
||||
if (! $this->checkParameters(['db'])) {
|
||||
if (! $this->response->checkParameters(['db'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -57,7 +56,7 @@ class SearchController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
$this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -74,7 +73,10 @@ class SearchController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->render('error/simple', ['error_message' => $errorMessage, 'back_url' => $GLOBALS['errorUrl']]);
|
||||
$this->response->render('error/simple', [
|
||||
'error_message' => $errorMessage,
|
||||
'back_url' => $GLOBALS['errorUrl'],
|
||||
]);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -5,28 +5,25 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Database;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Identifiers\DatabaseName;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function sprintf;
|
||||
|
||||
/**
|
||||
* Table/Column autocomplete in SQL editors.
|
||||
*/
|
||||
class SqlAutoCompleteController extends AbstractController
|
||||
final class SqlAutoCompleteController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly Config $config,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Database;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Config\PageSettings;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DbTableExists;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
@ -15,7 +15,6 @@ use PhpMyAdmin\Identifiers\DatabaseName;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\SqlQueryForm;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
|
||||
@ -25,16 +24,14 @@ use function htmlspecialchars;
|
||||
/**
|
||||
* Database SQL executor
|
||||
*/
|
||||
class SqlController extends AbstractController
|
||||
class SqlController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private SqlQueryForm $sqlQueryForm,
|
||||
private PageSettings $pageSettings,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly SqlQueryForm $sqlQueryForm,
|
||||
private readonly PageSettings $pageSettings,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -43,13 +40,13 @@ class SqlController extends AbstractController
|
||||
$GLOBALS['back'] ??= null;
|
||||
$GLOBALS['errorUrl'] ??= null;
|
||||
|
||||
$this->addScriptFiles(['makegrid.js', 'vendor/jquery/jquery.uitablefilter.js', 'sql.js']);
|
||||
$this->response->addScriptFiles(['makegrid.js', 'vendor/jquery/jquery.uitablefilter.js', 'sql.js']);
|
||||
|
||||
$this->pageSettings->init('Sql');
|
||||
$this->response->addHTML($this->pageSettings->getErrorHTML());
|
||||
$this->response->addHTML($this->pageSettings->getHTML());
|
||||
|
||||
if (! $this->checkParameters(['db'])) {
|
||||
if (! $this->response->checkParameters(['db'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -68,7 +65,7 @@ class SqlController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
$this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -4,16 +4,21 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\SqlParser\Utils\Formatter;
|
||||
|
||||
/**
|
||||
* Format SQL for SQL editors.
|
||||
*/
|
||||
class SqlFormatController extends AbstractController
|
||||
final class SqlFormatController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseRenderer $response)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
/** @var string $query */
|
||||
|
||||
@ -4,15 +4,20 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
|
||||
use function __;
|
||||
|
||||
final class AddPrefixController extends AbstractController
|
||||
final class AddPrefixController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseRenderer $response)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
/** @var string[] $selected */
|
||||
@ -31,7 +36,7 @@ final class AddPrefixController extends AbstractController
|
||||
}
|
||||
|
||||
$this->response->disable();
|
||||
$this->render('database/structure/add_prefix', ['url_params' => $params]);
|
||||
$this->response->render('database/structure/add_prefix', ['url_params' => $params]);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -4,26 +4,21 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Database\StructureController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Util;
|
||||
|
||||
final class AddPrefixTableController extends AbstractController
|
||||
final class AddPrefixTableController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private DatabaseInterface $dbi,
|
||||
private StructureController $structureController,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly StructureController $structureController,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,8 +4,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure\CentralColumns;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Database\StructureController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Database\CentralColumns;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
@ -13,21 +13,18 @@ use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Identifiers\DatabaseName;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use Webmozart\Assert\Assert;
|
||||
|
||||
use function __;
|
||||
use function is_array;
|
||||
|
||||
final class AddController extends AbstractController
|
||||
final class AddController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private DatabaseInterface $dbi,
|
||||
private StructureController $structureController,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly StructureController $structureController,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,8 +4,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure\CentralColumns;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Database\StructureController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Database\CentralColumns;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
@ -13,21 +13,18 @@ use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use Webmozart\Assert\Assert;
|
||||
|
||||
use function __;
|
||||
use function is_array;
|
||||
|
||||
final class MakeConsistentController extends AbstractController
|
||||
final class MakeConsistentController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private DatabaseInterface $dbi,
|
||||
private StructureController $structureController,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly StructureController $structureController,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,29 +4,26 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure\CentralColumns;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Database\StructureController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Database\CentralColumns;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use Webmozart\Assert\Assert;
|
||||
|
||||
use function __;
|
||||
use function is_array;
|
||||
|
||||
final class RemoveController extends AbstractController
|
||||
final class RemoveController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private DatabaseInterface $dbi,
|
||||
private StructureController $structureController,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly StructureController $structureController,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,15 +4,20 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
|
||||
use function __;
|
||||
|
||||
final class ChangePrefixFormController extends AbstractController
|
||||
final class ChangePrefixFormController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseRenderer $response)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
/** @var string[] $selected */
|
||||
@ -36,7 +41,10 @@ final class ChangePrefixFormController extends AbstractController
|
||||
}
|
||||
|
||||
$this->response->disable();
|
||||
$this->render('database/structure/change_prefix_form', ['route' => $route, 'url_params' => $urlParams]);
|
||||
$this->response->render('database/structure/change_prefix_form', [
|
||||
'route' => $route,
|
||||
'url_params' => $urlParams,
|
||||
]);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -4,16 +4,21 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
|
||||
use function __;
|
||||
|
||||
final class CopyFormController extends AbstractController
|
||||
final class CopyFormController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseRenderer $response)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
/** @var string[] $selected */
|
||||
@ -40,7 +45,7 @@ final class CopyFormController extends AbstractController
|
||||
}
|
||||
|
||||
$this->response->disable();
|
||||
$this->render('database/structure/copy_form', [
|
||||
$this->response->render('database/structure/copy_form', [
|
||||
'url_params' => $urlParams,
|
||||
'options' => $databasesList->getList(),
|
||||
]);
|
||||
|
||||
@ -4,28 +4,23 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Database\StructureController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\Operations;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Table\Table;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\UserPrivilegesFactory;
|
||||
|
||||
final class CopyTableController extends AbstractController
|
||||
final class CopyTableController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Operations $operations,
|
||||
private StructureController $structureController,
|
||||
private readonly Operations $operations,
|
||||
private readonly StructureController $structureController,
|
||||
private readonly UserPrivilegesFactory $userPrivilegesFactory,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,27 +4,21 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Database\StructureController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Table\Table;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function mb_strlen;
|
||||
use function mb_substr;
|
||||
|
||||
final class CopyTableWithPrefixController extends AbstractController
|
||||
final class CopyTableWithPrefixController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private StructureController $structureController,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(private readonly StructureController $structureController)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,24 +4,22 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Util;
|
||||
use PhpMyAdmin\Utils\ForeignKey;
|
||||
|
||||
use function __;
|
||||
use function htmlspecialchars;
|
||||
|
||||
final class DropFormController extends AbstractController
|
||||
final class DropFormController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private DatabaseInterface $dbi)
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly DatabaseInterface $dbi)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -62,7 +60,7 @@ final class DropFormController extends AbstractController
|
||||
$urlParams['selected'][] = $selectedValue;
|
||||
}
|
||||
|
||||
$this->render('database/structure/drop_form', [
|
||||
$this->response->render('database/structure/drop_form', [
|
||||
'url_params' => $urlParams,
|
||||
'full_query' => $fullQuery,
|
||||
'is_foreign_key_check' => ForeignKey::isCheckEnabled(),
|
||||
|
||||
@ -5,30 +5,25 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure;
|
||||
|
||||
use PhpMyAdmin\ConfigStorage\RelationCleanup;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Database\StructureController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Util;
|
||||
use PhpMyAdmin\Utils\ForeignKey;
|
||||
|
||||
use function __;
|
||||
|
||||
final class DropTableController extends AbstractController
|
||||
final class DropTableController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private DatabaseInterface $dbi,
|
||||
private RelationCleanup $relationCleanup,
|
||||
private StructureController $structureController,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly RelationCleanup $relationCleanup,
|
||||
private readonly StructureController $structureController,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,18 +4,23 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Util;
|
||||
use PhpMyAdmin\Utils\ForeignKey;
|
||||
|
||||
use function __;
|
||||
use function htmlspecialchars;
|
||||
|
||||
final class EmptyFormController extends AbstractController
|
||||
final class EmptyFormController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseRenderer $response)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
/** @var string[] $selected */
|
||||
@ -37,7 +42,7 @@ final class EmptyFormController extends AbstractController
|
||||
$urlParams['selected'][] = $selectedValue;
|
||||
}
|
||||
|
||||
$this->render('database/structure/empty_form', [
|
||||
$this->response->render('database/structure/empty_form', [
|
||||
'url_params' => $urlParams,
|
||||
'full_query' => $fullQuery,
|
||||
'is_foreign_key_check' => ForeignKey::isCheckEnabled(),
|
||||
|
||||
@ -8,8 +8,8 @@ use PhpMyAdmin\Bookmarks\BookmarkRepository;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\ConfigStorage\RelationCleanup;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Database\StructureController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\FlashMessages;
|
||||
@ -26,18 +26,17 @@ use PhpMyAdmin\Utils\ForeignKey;
|
||||
|
||||
use function __;
|
||||
|
||||
final class EmptyTableController extends AbstractController
|
||||
final class EmptyTableController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private DatabaseInterface $dbi,
|
||||
private Relation $relation,
|
||||
private RelationCleanup $relationCleanup,
|
||||
private FlashMessages $flash,
|
||||
private StructureController $structureController,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Template $template,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly Relation $relation,
|
||||
private readonly RelationCleanup $relationCleanup,
|
||||
private readonly FlashMessages $flash,
|
||||
private readonly StructureController $structureController,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -48,7 +47,7 @@ final class EmptyTableController extends AbstractController
|
||||
|
||||
if ($multBtn !== __('Yes')) {
|
||||
$this->flash->addMessage('success', __('No change'));
|
||||
$this->redirect('/database/structure', ['db' => Current::$database]);
|
||||
$this->response->redirectToRoute('/database/structure', ['db' => Current::$database]);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Database\Structure;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DbTableExists;
|
||||
use PhpMyAdmin\Favorites\RecentFavoriteTable;
|
||||
@ -29,15 +29,14 @@ use function json_encode;
|
||||
use function md5;
|
||||
use function sha1;
|
||||
|
||||
final class FavoriteTableController extends AbstractController
|
||||
final class FavoriteTableController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Relation $relation,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Template $template,
|
||||
private readonly Relation $relation,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -5,7 +5,7 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\DbTableExists;
|
||||
@ -14,7 +14,6 @@ use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Identifiers\DatabaseName;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
|
||||
@ -23,15 +22,13 @@ use function __;
|
||||
/**
|
||||
* Handles request for real row count on database level view page.
|
||||
*/
|
||||
final class RealRowCountController extends AbstractController
|
||||
final class RealRowCountController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private DatabaseInterface $dbi,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -43,7 +40,7 @@ final class RealRowCountController extends AbstractController
|
||||
'table' => $_REQUEST['table'] ?? null,
|
||||
];
|
||||
|
||||
if (! $this->checkParameters(['db'])) {
|
||||
if (! $this->response->checkParameters(['db'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@ -4,29 +4,24 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Database\StructureController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Util;
|
||||
|
||||
use function mb_strlen;
|
||||
use function mb_substr;
|
||||
|
||||
final class ReplacePrefixController extends AbstractController
|
||||
final class ReplacePrefixController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private DatabaseInterface $dbi,
|
||||
private StructureController $structureController,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly StructureController $structureController,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,7 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database\Structure;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
@ -15,11 +15,13 @@ use PhpMyAdmin\Template;
|
||||
|
||||
use function __;
|
||||
|
||||
final class ShowCreateController extends AbstractController
|
||||
final class ShowCreateController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private DatabaseInterface $dbi)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Template $template,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -8,7 +8,7 @@ use PhpMyAdmin\Charsets;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Config\PageSettings;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\DbTableExists;
|
||||
@ -56,7 +56,7 @@ use function urlencode;
|
||||
/**
|
||||
* Handles database structure logic
|
||||
*/
|
||||
final class StructureController extends AbstractController
|
||||
final class StructureController implements InvocableController
|
||||
{
|
||||
/** @var int Number of tables */
|
||||
private int $numTables = 0;
|
||||
@ -79,17 +79,15 @@ final class StructureController extends AbstractController
|
||||
private ReplicationInfo $replicationInfo;
|
||||
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Relation $relation,
|
||||
private Replication $replication,
|
||||
private DatabaseInterface $dbi,
|
||||
private TrackingChecker $trackingChecker,
|
||||
private PageSettings $pageSettings,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Template $template,
|
||||
private readonly Relation $relation,
|
||||
private readonly Replication $replication,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly TrackingChecker $trackingChecker,
|
||||
private readonly PageSettings $pageSettings,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
|
||||
$this->replicationInfo = new ReplicationInfo($this->dbi);
|
||||
}
|
||||
|
||||
@ -129,7 +127,7 @@ final class StructureController extends AbstractController
|
||||
|
||||
$parameters = ['sort' => $_REQUEST['sort'] ?? null, 'sort_order' => $_REQUEST['sort_order'] ?? null];
|
||||
|
||||
if (! $this->checkParameters(['db'])) {
|
||||
if (! $this->response->checkParameters(['db'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -146,12 +144,12 @@ final class StructureController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
$this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->addScriptFiles(['database/structure.js', 'table/change.js']);
|
||||
$this->response->addScriptFiles(['database/structure.js', 'table/change.js']);
|
||||
|
||||
// Gets the database structure
|
||||
$this->getDatabaseInfo($request);
|
||||
@ -160,7 +158,7 @@ final class StructureController extends AbstractController
|
||||
// If there are no tables, the user is redirected to the last page
|
||||
// having any.
|
||||
if ($this->totalNumTables > 0 && $this->position > $this->totalNumTables) {
|
||||
$this->redirect('/database/structure', [
|
||||
$this->response->redirectToRoute('/database/structure', [
|
||||
'db' => Current::$database,
|
||||
'pos' => max(0, $this->totalNumTables - $config->settings['MaxTableList']),
|
||||
'reload' => 1,
|
||||
@ -201,7 +199,7 @@ final class StructureController extends AbstractController
|
||||
$createTable = $this->template->render('database/create_table', ['db' => Current::$database]);
|
||||
}
|
||||
|
||||
$this->render('database/structure/index', [
|
||||
$this->response->render('database/structure/index', [
|
||||
'database' => Current::$database,
|
||||
'has_tables' => $this->numTables > 0,
|
||||
'list_navigator_html' => $listNavigator ?? '',
|
||||
|
||||
@ -5,7 +5,7 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Database;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\DbTableExists;
|
||||
@ -17,7 +17,6 @@ use PhpMyAdmin\LanguageManager;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\Query\Utilities;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Tracking\Tracking;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
@ -29,16 +28,14 @@ use function sprintf;
|
||||
/**
|
||||
* Tracking configuration for database.
|
||||
*/
|
||||
class TrackingController extends AbstractController
|
||||
final class TrackingController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Tracking $tracking,
|
||||
private DatabaseInterface $dbi,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Tracking $tracking,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -46,9 +43,9 @@ class TrackingController extends AbstractController
|
||||
$GLOBALS['urlParams'] ??= null;
|
||||
$GLOBALS['errorUrl'] ??= null;
|
||||
|
||||
$this->addScriptFiles(['vendor/jquery/jquery.tablesorter.js', 'database/tracking.js']);
|
||||
$this->response->addScriptFiles(['vendor/jquery/jquery.tablesorter.js', 'database/tracking.js']);
|
||||
|
||||
if (! $this->checkParameters(['db'])) {
|
||||
if (! $this->response->checkParameters(['db'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -65,7 +62,7 @@ class TrackingController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
$this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -107,7 +104,7 @@ class TrackingController extends AbstractController
|
||||
__('Tracking data deleted successfully.'),
|
||||
)->getDisplay());
|
||||
} elseif ($request->getParsedBodyParam('submit_mult') === 'track') {
|
||||
$this->render('create_tracking_version', [
|
||||
$this->response->render('create_tracking_version', [
|
||||
'route' => '/database/tracking',
|
||||
'url_params' => $GLOBALS['urlParams'],
|
||||
'last_version' => 0,
|
||||
@ -134,7 +131,7 @@ class TrackingController extends AbstractController
|
||||
$this->response->addHTML('<p>' . __('No tables found in database.') . '</p>' . "\n");
|
||||
|
||||
if (! $isSystemSchema) {
|
||||
$this->render('database/create_table', ['db' => Current::$database]);
|
||||
$this->response->render('database/create_table', ['db' => Current::$database]);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@ -8,13 +8,11 @@ use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
final class DatabaseController extends AbstractController
|
||||
final class DatabaseController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private readonly DatabaseInterface $dbi)
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly DatabaseInterface $dbi)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -28,16 +28,15 @@ use function time;
|
||||
/**
|
||||
* Handle error report submission
|
||||
*/
|
||||
class ErrorReportController extends AbstractController
|
||||
final class ErrorReportController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private ErrorReport $errorReport,
|
||||
private ErrorHandler $errorHandler,
|
||||
private DatabaseInterface $dbi,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Template $template,
|
||||
private readonly ErrorReport $errorReport,
|
||||
private readonly ErrorHandler $errorHandler,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,12 +4,17 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Export;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
|
||||
final class CheckTimeOutController extends AbstractController
|
||||
final class CheckTimeOutController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseRenderer $response)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
if (! $request->isAjax()) {
|
||||
|
||||
@ -6,8 +6,8 @@ namespace PhpMyAdmin\Controllers\Export;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Container\ContainerBuilder;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Database\ExportController as DatabaseExportController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Encoding;
|
||||
@ -24,7 +24,6 @@ use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Sanitize;
|
||||
use PhpMyAdmin\SqlParser\Parser;
|
||||
use PhpMyAdmin\SqlParser\Statements\SelectStatement;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
use Webmozart\Assert\Assert;
|
||||
@ -38,11 +37,10 @@ use function is_array;
|
||||
use function register_shutdown_function;
|
||||
use function time;
|
||||
|
||||
final class ExportController extends AbstractController
|
||||
final class ExportController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Export $export)
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly Export $export)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -90,14 +88,14 @@ final class ExportController extends AbstractController
|
||||
$tableStructure = $request->getParsedBodyParam('table_structure');
|
||||
$lockTables = $request->hasBodyParam('lock_tables');
|
||||
|
||||
$this->addScriptFiles(['export_output.js']);
|
||||
$this->response->addScriptFiles(['export_output.js']);
|
||||
|
||||
$this->setGlobalsFromRequest($postParams);
|
||||
|
||||
// sanitize this parameter which will be used below in a file inclusion
|
||||
$GLOBALS['what'] = Core::securePath($whatParam);
|
||||
|
||||
if (! $this->checkParameters(['what', 'export_type'])) {
|
||||
if (! $this->response->checkParameters(['what', 'export_type'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@ -4,23 +4,20 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Export;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Database\ExportController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function __;
|
||||
|
||||
final class TablesController extends AbstractController
|
||||
final class TablesController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private ExportController $exportController,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly ExportController $exportController,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Export\Template;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Export\Template as ExportTemplate;
|
||||
use PhpMyAdmin\Export\TemplateModel;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
@ -16,15 +16,14 @@ use PhpMyAdmin\Template;
|
||||
|
||||
use function is_array;
|
||||
|
||||
final class CreateController extends AbstractController
|
||||
final class CreateController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private TemplateModel $model,
|
||||
private Relation $relation,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Template $template,
|
||||
private readonly TemplateModel $model,
|
||||
private readonly Relation $relation,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -6,22 +6,19 @@ namespace PhpMyAdmin\Controllers\Export\Template;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Export\TemplateModel;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
final class DeleteController extends AbstractController
|
||||
final class DeleteController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private TemplateModel $model,
|
||||
private Relation $relation,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly TemplateModel $model,
|
||||
private readonly Relation $relation,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -6,23 +6,20 @@ namespace PhpMyAdmin\Controllers\Export\Template;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Export\Template as ExportTemplate;
|
||||
use PhpMyAdmin\Export\TemplateModel;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
final class LoadController extends AbstractController
|
||||
final class LoadController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private TemplateModel $model,
|
||||
private Relation $relation,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly TemplateModel $model,
|
||||
private readonly Relation $relation,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -6,23 +6,20 @@ namespace PhpMyAdmin\Controllers\Export\Template;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Export\Template as ExportTemplate;
|
||||
use PhpMyAdmin\Export\TemplateModel;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
final class UpdateController extends AbstractController
|
||||
final class UpdateController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private TemplateModel $model,
|
||||
private Relation $relation,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly TemplateModel $model,
|
||||
private readonly Relation $relation,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -11,6 +11,8 @@ use PhpMyAdmin\Gis\GisFactory;
|
||||
use PhpMyAdmin\Gis\GisVisualization;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function array_merge;
|
||||
use function in_array;
|
||||
@ -22,8 +24,12 @@ use function trim;
|
||||
/**
|
||||
* Editor for Geometry data types.
|
||||
*/
|
||||
class GisDataEditorController extends AbstractController
|
||||
final class GisDataEditorController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly Template $template)
|
||||
{
|
||||
}
|
||||
|
||||
private const GIS_TYPES = [
|
||||
'POINT',
|
||||
'MULTIPOINT',
|
||||
|
||||
@ -9,16 +9,14 @@ use PhpMyAdmin\Git;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Util;
|
||||
|
||||
use function strtotime;
|
||||
|
||||
final class GitInfoController extends AbstractController
|
||||
final class GitInfoController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Config $config)
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly Config $config)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -44,7 +42,7 @@ final class GitInfoController extends AbstractController
|
||||
$commit['author']['date'] = Util::localisedDate(strtotime($commit['author']['date']));
|
||||
$commit['committer']['date'] = Util::localisedDate(strtotime($commit['committer']['date']));
|
||||
|
||||
$this->render('home/git_info', $commit);
|
||||
$this->response->render('home/git_info', $commit);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -24,7 +24,6 @@ use PhpMyAdmin\LanguageManager;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Server\Select;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Theme\ThemeManager;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
@ -42,7 +41,7 @@ use function sprintf;
|
||||
use const PHP_VERSION;
|
||||
use const SODIUM_CRYPTO_SECRETBOX_KEYBYTES;
|
||||
|
||||
class HomeController extends AbstractController
|
||||
final class HomeController implements InvocableController
|
||||
{
|
||||
/**
|
||||
* @var array<int, array<string, string>>
|
||||
@ -51,14 +50,12 @@ class HomeController extends AbstractController
|
||||
private array $errors = [];
|
||||
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Config $config,
|
||||
private ThemeManager $themeManager,
|
||||
private DatabaseInterface $dbi,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Config $config,
|
||||
private readonly ThemeManager $themeManager,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly ResponseFactory $responseFactory,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -75,7 +72,7 @@ class HomeController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->addScriptFiles(['home.js']);
|
||||
$this->response->addScriptFiles(['home.js']);
|
||||
|
||||
// This is for $cfg['ShowDatabasesNavigationAsTree'] = false;
|
||||
// See: https://github.com/phpmyadmin/phpmyadmin/issues/16520
|
||||
@ -220,7 +217,7 @@ class HomeController extends AbstractController
|
||||
|
||||
$git = new Git($this->config->get('ShowGitRevision') ?? true);
|
||||
|
||||
$this->render('home/index', [
|
||||
$this->response->render('home/index', [
|
||||
'db' => Current::$database,
|
||||
'table' => Current::$table,
|
||||
'message' => $displayMessage ?? '',
|
||||
|
||||
@ -8,7 +8,7 @@ use PhpMyAdmin\Bookmarks\Bookmark;
|
||||
use PhpMyAdmin\Bookmarks\BookmarkRepository;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
@ -24,7 +24,6 @@ use PhpMyAdmin\ParseAnalyze;
|
||||
use PhpMyAdmin\Plugins\Import\ImportFormat;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Sql;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
use PhpMyAdmin\Utils\ForeignKey;
|
||||
@ -48,17 +47,15 @@ use function preg_quote;
|
||||
use function preg_replace;
|
||||
use function time;
|
||||
|
||||
final class ImportController extends AbstractController
|
||||
final class ImportController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Import $import,
|
||||
private Sql $sql,
|
||||
private DatabaseInterface $dbi,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Import $import,
|
||||
private readonly Sql $sql,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly BookmarkRepository $bookmarkRepository,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,7 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Import;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Import\SimulateDml;
|
||||
@ -14,20 +14,15 @@ use PhpMyAdmin\SqlParser\Parser;
|
||||
use PhpMyAdmin\SqlParser\Statements\DeleteStatement;
|
||||
use PhpMyAdmin\SqlParser\Statements\UpdateStatement;
|
||||
use PhpMyAdmin\SqlParser\Utils\Query;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function __;
|
||||
use function count;
|
||||
use function explode;
|
||||
|
||||
final class SimulateDmlController extends AbstractController
|
||||
final class SimulateDmlController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private SimulateDml $simulateDml,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly SimulateDml $simulateDml)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -26,7 +26,7 @@ use function usleep;
|
||||
*/
|
||||
class StatusController implements InvocableController
|
||||
{
|
||||
public function __construct(private Template $template)
|
||||
public function __construct(private readonly Template $template)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -9,6 +9,7 @@ namespace PhpMyAdmin\Controllers;
|
||||
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
|
||||
use function __;
|
||||
use function is_readable;
|
||||
@ -18,8 +19,12 @@ use function readfile;
|
||||
/**
|
||||
* Simple script to set correct charset for the license
|
||||
*/
|
||||
class LicenseController extends AbstractController
|
||||
final class LicenseController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseRenderer $response)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
$this->response->disable();
|
||||
|
||||
@ -11,6 +11,7 @@ use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Linter;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
|
||||
use function header;
|
||||
use function is_array;
|
||||
@ -20,8 +21,12 @@ use function sprintf;
|
||||
/**
|
||||
* Represents the interface between the linter and the query editor.
|
||||
*/
|
||||
class LintController extends AbstractController
|
||||
final class LintController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseRenderer $response)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
if (! $request->isAjax()) {
|
||||
|
||||
@ -9,9 +9,9 @@ use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Plugins\AuthenticationPluginFactory;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
|
||||
class LogoutController implements InvocableController
|
||||
final class LogoutController implements InvocableController
|
||||
{
|
||||
public function __construct(private AuthenticationPluginFactory $authPluginFactory)
|
||||
public function __construct(private readonly AuthenticationPluginFactory $authPluginFactory)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -5,21 +5,19 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Navigation;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function __;
|
||||
use function is_numeric;
|
||||
|
||||
final class UpdateNavWidthConfigController extends AbstractController
|
||||
final class UpdateNavWidthConfigController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private readonly Config $config)
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly Config $config)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -11,7 +11,6 @@ use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\Navigation\Navigation;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Utils\SessionCache;
|
||||
|
||||
use function __;
|
||||
@ -21,16 +20,14 @@ use function __;
|
||||
*
|
||||
* Displays server, database and table selection tree.
|
||||
*/
|
||||
class NavigationController extends AbstractController
|
||||
final class NavigationController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Navigation $navigation,
|
||||
private Relation $relation,
|
||||
private PageSettings $pageSettings,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Navigation $navigation,
|
||||
private readonly Relation $relation,
|
||||
private readonly PageSettings $pageSettings,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,7 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
@ -12,19 +12,16 @@ use PhpMyAdmin\Identifiers\DatabaseName;
|
||||
use PhpMyAdmin\Identifiers\TableName;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\UserPrivilegesFactory;
|
||||
|
||||
final class AddNewPrimaryController extends AbstractController
|
||||
final class AddNewPrimaryController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Normalization $normalization,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
private readonly UserPrivilegesFactory $userPrivilegesFactory,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,27 +4,24 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\UserPrivilegesFactory;
|
||||
|
||||
use function min;
|
||||
|
||||
final class CreateNewColumnController extends AbstractController
|
||||
final class CreateNewColumnController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Normalization $normalization,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
private readonly UserPrivilegesFactory $userPrivilegesFactory,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,26 +4,26 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization\FirstNormalForm;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function in_array;
|
||||
|
||||
final class FirstStepController extends AbstractController
|
||||
final class FirstStepController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Normalization $normalization)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
$this->addScriptFiles(['normalization.js', 'vendor/jquery/jquery.uitablefilter.js']);
|
||||
$this->response->addScriptFiles(['normalization.js', 'vendor/jquery/jquery.uitablefilter.js']);
|
||||
|
||||
$normalForm = '1nf';
|
||||
$normalizeTo = $request->getParsedBodyParam('normalizeTo');
|
||||
|
||||
@ -4,19 +4,19 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization\FirstNormalForm;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
final class FourthStepController extends AbstractController
|
||||
final class FourthStepController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Normalization $normalization)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,19 +4,19 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization\FirstNormalForm;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
final class SecondStepController extends AbstractController
|
||||
final class SecondStepController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Normalization $normalization)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,19 +4,19 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization\FirstNormalForm;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
final class ThirdStepController extends AbstractController
|
||||
final class ThirdStepController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Normalization $normalization)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,22 +4,22 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function __;
|
||||
use function _pgettext;
|
||||
|
||||
final class GetColumnsController extends AbstractController
|
||||
final class GetColumnsController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Normalization $normalization)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,20 +4,28 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
|
||||
/**
|
||||
* Normalization process (temporarily specific to 1NF).
|
||||
*/
|
||||
class MainController extends AbstractController
|
||||
final class MainController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseRenderer $response)
|
||||
{
|
||||
}
|
||||
|
||||
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]);
|
||||
$this->response->addScriptFiles(['normalization.js', 'vendor/jquery/jquery.uitablefilter.js']);
|
||||
$this->response->render('table/normalization/normalization', [
|
||||
'db' => Current::$database,
|
||||
'table' => Current::$table,
|
||||
]);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -4,19 +4,19 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
final class MoveRepeatingGroup extends AbstractController
|
||||
final class MoveRepeatingGroup implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Normalization $normalization)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,19 +4,19 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
final class PartialDependenciesController extends AbstractController
|
||||
final class PartialDependenciesController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Normalization $normalization)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,21 +4,21 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization\SecondNormalForm;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function json_decode;
|
||||
|
||||
final class CreateNewTablesController extends AbstractController
|
||||
final class CreateNewTablesController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Normalization $normalization)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,19 +4,19 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization\SecondNormalForm;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
final class FirstStepController extends AbstractController
|
||||
final class FirstStepController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Normalization $normalization)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,21 +4,21 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization\SecondNormalForm;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function json_decode;
|
||||
|
||||
final class NewTablesController extends AbstractController
|
||||
final class NewTablesController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Normalization $normalization)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,21 +4,21 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization\ThirdNormalForm;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function json_decode;
|
||||
|
||||
final class CreateNewTablesController extends AbstractController
|
||||
final class CreateNewTablesController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Normalization $normalization)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,19 +4,19 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization\ThirdNormalForm;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
final class FirstStepController extends AbstractController
|
||||
final class FirstStepController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Normalization $normalization)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -4,21 +4,21 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Normalization\ThirdNormalForm;
|
||||
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Normalization;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function json_decode;
|
||||
|
||||
final class NewTablesController extends AbstractController
|
||||
final class NewTablesController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Normalization $normalization)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Normalization $normalization,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
|
||||
@ -5,7 +5,7 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Operations\Database;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\DbTableExists;
|
||||
@ -15,22 +15,19 @@ use PhpMyAdmin\Identifiers\DatabaseName;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\Operations;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
|
||||
use function __;
|
||||
|
||||
final class CollationController extends AbstractController
|
||||
final class CollationController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Operations $operations,
|
||||
private DatabaseInterface $dbi,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Operations $operations,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -49,7 +46,7 @@ final class CollationController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
if (! $this->checkParameters(['db'])) {
|
||||
if (! $this->response->checkParameters(['db'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@ use PhpMyAdmin\Charsets;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\ConfigStorage\RelationCleanup;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\DbTableExists;
|
||||
@ -22,7 +22,6 @@ use PhpMyAdmin\Operations;
|
||||
use PhpMyAdmin\Plugins;
|
||||
use PhpMyAdmin\Query\Utilities;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\UserPrivilegesFactory;
|
||||
use PhpMyAdmin\Util;
|
||||
@ -33,19 +32,17 @@ use function mb_strtolower;
|
||||
/**
|
||||
* Handles miscellaneous database operations.
|
||||
*/
|
||||
class DatabaseController extends AbstractController
|
||||
final class DatabaseController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Operations $operations,
|
||||
private UserPrivilegesFactory $userPrivilegesFactory,
|
||||
private Relation $relation,
|
||||
private RelationCleanup $relationCleanup,
|
||||
private DatabaseInterface $dbi,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Operations $operations,
|
||||
private readonly UserPrivilegesFactory $userPrivilegesFactory,
|
||||
private readonly Relation $relation,
|
||||
private readonly RelationCleanup $relationCleanup,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -57,7 +54,7 @@ class DatabaseController extends AbstractController
|
||||
|
||||
$userPrivileges = $this->userPrivilegesFactory->getPrivileges();
|
||||
|
||||
$this->addScriptFiles(['database/operations.js']);
|
||||
$this->response->addScriptFiles(['database/operations.js']);
|
||||
|
||||
$GLOBALS['sql_query'] = '';
|
||||
|
||||
@ -227,7 +224,7 @@ class DatabaseController extends AbstractController
|
||||
$this->relation->setDbComment(Current::$database, $request->getParsedBodyParam('comment'));
|
||||
}
|
||||
|
||||
if (! $this->checkParameters(['db'])) {
|
||||
if (! $this->response->checkParameters(['db'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -244,7 +241,7 @@ class DatabaseController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
$this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -296,7 +293,7 @@ class DatabaseController extends AbstractController
|
||||
}
|
||||
}
|
||||
|
||||
$this->render('database/operations/index', [
|
||||
$this->response->render('database/operations/index', [
|
||||
'message' => $oldMessage,
|
||||
'db' => Current::$database,
|
||||
'has_comment' => $relationParameters->columnCommentsFeature !== null,
|
||||
|
||||
@ -7,7 +7,7 @@ namespace PhpMyAdmin\Controllers\Operations;
|
||||
use PhpMyAdmin\Charsets;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\DbTableExists;
|
||||
@ -24,7 +24,6 @@ use PhpMyAdmin\Query\Generator as QueryGenerator;
|
||||
use PhpMyAdmin\Query\Utilities;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\StorageEngine;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\UserPrivilegesFactory;
|
||||
use PhpMyAdmin\Util;
|
||||
@ -40,18 +39,16 @@ use function preg_replace;
|
||||
use function str_contains;
|
||||
use function urldecode;
|
||||
|
||||
class TableController extends AbstractController
|
||||
final class TableController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private Operations $operations,
|
||||
private UserPrivilegesFactory $userPrivilegesFactory,
|
||||
private Relation $relation,
|
||||
private DatabaseInterface $dbi,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly Operations $operations,
|
||||
private readonly UserPrivilegesFactory $userPrivilegesFactory,
|
||||
private readonly Relation $relation,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -69,9 +66,9 @@ class TableController extends AbstractController
|
||||
|
||||
$pmaTable = $this->dbi->getTable(Current::$database, Current::$table);
|
||||
|
||||
$this->addScriptFiles(['table/operations.js']);
|
||||
$this->response->addScriptFiles(['table/operations.js']);
|
||||
|
||||
if (! $this->checkParameters(['db', 'table'])) {
|
||||
if (! $this->response->checkParameters(['db', 'table'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -90,7 +87,7 @@ class TableController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
$this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -104,7 +101,7 @@ class TableController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
|
||||
$this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -488,7 +485,7 @@ class TableController extends AbstractController
|
||||
$relationParameters->relationFeature !== null,
|
||||
);
|
||||
|
||||
$this->render('table/operations/index', [
|
||||
$this->response->render('table/operations/index', [
|
||||
'db' => Current::$database,
|
||||
'table' => Current::$table,
|
||||
'url_params' => $GLOBALS['urlParams'],
|
||||
|
||||
@ -5,7 +5,7 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Operations;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\DbTableExists;
|
||||
@ -16,7 +16,6 @@ use PhpMyAdmin\Identifiers\DatabaseName;
|
||||
use PhpMyAdmin\Identifiers\TableName;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
|
||||
@ -28,15 +27,13 @@ use function strval;
|
||||
/**
|
||||
* View manipulations
|
||||
*/
|
||||
class ViewController extends AbstractController
|
||||
final class ViewController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private DatabaseInterface $dbi,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
private readonly DbTableExists $dbTableExists,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -45,9 +42,9 @@ class ViewController extends AbstractController
|
||||
$tableObject = $this->dbi->getTable(Current::$database, Current::$table);
|
||||
|
||||
$GLOBALS['errorUrl'] ??= null;
|
||||
$this->addScriptFiles(['table/operations.js']);
|
||||
$this->response->addScriptFiles(['table/operations.js']);
|
||||
|
||||
if (! $this->checkParameters(['db', 'table'])) {
|
||||
if (! $this->response->checkParameters(['db', 'table'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -67,7 +64,7 @@ class ViewController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
$this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -81,7 +78,7 @@ class ViewController extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->redirect('/', ['reload' => true, 'message' => __('No table selected.')]);
|
||||
$this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -136,7 +133,7 @@ class ViewController extends AbstractController
|
||||
));
|
||||
}
|
||||
|
||||
$this->render('table/operations/view', [
|
||||
$this->response->render('table/operations/view', [
|
||||
'db' => Current::$database,
|
||||
'table' => Current::$table,
|
||||
'url_params' => $GLOBALS['urlParams'],
|
||||
|
||||
@ -10,6 +10,7 @@ namespace PhpMyAdmin\Controllers;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
|
||||
use function phpinfo;
|
||||
|
||||
@ -20,8 +21,12 @@ use const INFO_MODULES;
|
||||
/**
|
||||
* phpinfo() wrapper to allow displaying only when configured to do so.
|
||||
*/
|
||||
class PhpInfoController extends AbstractController
|
||||
final class PhpInfoController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseRenderer $response)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
$this->response->disable();
|
||||
|
||||
@ -8,13 +8,12 @@ use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Config\ConfigFile;
|
||||
use PhpMyAdmin\Config\Forms\User\ExportForm;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Theme\ThemeManager;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
use PhpMyAdmin\Url;
|
||||
@ -23,17 +22,15 @@ use PhpMyAdmin\UserPreferences;
|
||||
use function define;
|
||||
use function ltrim;
|
||||
|
||||
class ExportController extends AbstractController
|
||||
final class ExportController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private UserPreferences $userPreferences,
|
||||
private Relation $relation,
|
||||
private Config $config,
|
||||
private ThemeManager $themeManager,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly UserPreferences $userPreferences,
|
||||
private readonly Relation $relation,
|
||||
private readonly Config $config,
|
||||
private readonly ThemeManager $themeManager,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -51,7 +48,7 @@ class ExportController extends AbstractController
|
||||
if ($request->hasBodyParam('revert')) {
|
||||
// revert erroneous fields to their default values
|
||||
$formDisplay->fixErrors();
|
||||
$this->redirect('/preferences/export');
|
||||
$this->response->redirectToRoute('/preferences/export', []);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -79,7 +76,7 @@ class ExportController extends AbstractController
|
||||
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
$this->response->render('preferences/header', [
|
||||
'route' => $request->getRoute(),
|
||||
'is_saved' => $request->hasQueryParam('saved'),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
@ -87,7 +84,7 @@ class ExportController extends AbstractController
|
||||
|
||||
$formErrors = $formDisplay->displayErrors();
|
||||
|
||||
$this->render('preferences/forms/main', [
|
||||
$this->response->render('preferences/forms/main', [
|
||||
'error' => $GLOBALS['error'] instanceof Message ? $GLOBALS['error']->getDisplay() : '',
|
||||
'has_errors' => $formDisplay->hasErrors(),
|
||||
'errors' => $formErrors,
|
||||
|
||||
@ -8,13 +8,12 @@ use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Config\ConfigFile;
|
||||
use PhpMyAdmin\Config\Forms\User\FeaturesForm;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Theme\ThemeManager;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
use PhpMyAdmin\Url;
|
||||
@ -23,17 +22,15 @@ use PhpMyAdmin\UserPreferences;
|
||||
use function define;
|
||||
use function ltrim;
|
||||
|
||||
class FeaturesController extends AbstractController
|
||||
final class FeaturesController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private UserPreferences $userPreferences,
|
||||
private Relation $relation,
|
||||
private Config $config,
|
||||
private ThemeManager $themeManager,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly UserPreferences $userPreferences,
|
||||
private readonly Relation $relation,
|
||||
private readonly Config $config,
|
||||
private readonly ThemeManager $themeManager,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -51,7 +48,7 @@ class FeaturesController extends AbstractController
|
||||
if ($request->hasBodyParam('revert')) {
|
||||
// revert erroneous fields to their default values
|
||||
$formDisplay->fixErrors();
|
||||
$this->redirect('/preferences/features');
|
||||
$this->response->redirectToRoute('/preferences/features', []);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -79,7 +76,7 @@ class FeaturesController extends AbstractController
|
||||
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
$this->response->render('preferences/header', [
|
||||
'route' => $request->getRoute(),
|
||||
'is_saved' => $request->hasQueryParam('saved'),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
@ -87,7 +84,7 @@ class FeaturesController extends AbstractController
|
||||
|
||||
$formErrors = $formDisplay->displayErrors();
|
||||
|
||||
$this->render('preferences/forms/main', [
|
||||
$this->response->render('preferences/forms/main', [
|
||||
'error' => $GLOBALS['error'] instanceof Message ? $GLOBALS['error']->getDisplay() : '',
|
||||
'has_errors' => $formDisplay->hasErrors(),
|
||||
'errors' => $formErrors,
|
||||
|
||||
@ -8,13 +8,12 @@ use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Config\ConfigFile;
|
||||
use PhpMyAdmin\Config\Forms\User\ImportForm;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Theme\ThemeManager;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
use PhpMyAdmin\Url;
|
||||
@ -23,17 +22,15 @@ use PhpMyAdmin\UserPreferences;
|
||||
use function define;
|
||||
use function ltrim;
|
||||
|
||||
class ImportController extends AbstractController
|
||||
final class ImportController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private UserPreferences $userPreferences,
|
||||
private Relation $relation,
|
||||
private Config $config,
|
||||
private ThemeManager $themeManager,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly UserPreferences $userPreferences,
|
||||
private readonly Relation $relation,
|
||||
private readonly Config $config,
|
||||
private readonly ThemeManager $themeManager,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -51,7 +48,7 @@ class ImportController extends AbstractController
|
||||
if ($request->hasBodyParam('revert')) {
|
||||
// revert erroneous fields to their default values
|
||||
$formDisplay->fixErrors();
|
||||
$this->redirect('/preferences/import');
|
||||
$this->response->redirectToRoute('/preferences/import', []);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -79,7 +76,7 @@ class ImportController extends AbstractController
|
||||
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
$this->response->render('preferences/header', [
|
||||
'route' => $request->getRoute(),
|
||||
'is_saved' => $request->hasQueryParam('saved'),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
@ -87,7 +84,7 @@ class ImportController extends AbstractController
|
||||
|
||||
$formErrors = $formDisplay->displayErrors();
|
||||
|
||||
$this->render('preferences/forms/main', [
|
||||
$this->response->render('preferences/forms/main', [
|
||||
'error' => $GLOBALS['error'] instanceof Message ? $GLOBALS['error']->getDisplay() : '',
|
||||
'has_errors' => $formDisplay->hasErrors(),
|
||||
'errors' => $formErrors,
|
||||
|
||||
@ -8,13 +8,12 @@ use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Config\ConfigFile;
|
||||
use PhpMyAdmin\Config\Forms\User\MainForm;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Theme\ThemeManager;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
use PhpMyAdmin\Url;
|
||||
@ -23,17 +22,15 @@ use PhpMyAdmin\UserPreferences;
|
||||
use function define;
|
||||
use function ltrim;
|
||||
|
||||
class MainPanelController extends AbstractController
|
||||
final class MainPanelController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private UserPreferences $userPreferences,
|
||||
private Relation $relation,
|
||||
private Config $config,
|
||||
private ThemeManager $themeManager,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly UserPreferences $userPreferences,
|
||||
private readonly Relation $relation,
|
||||
private readonly Config $config,
|
||||
private readonly ThemeManager $themeManager,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -51,7 +48,7 @@ class MainPanelController extends AbstractController
|
||||
if ($request->hasBodyParam('revert')) {
|
||||
// revert erroneous fields to their default values
|
||||
$formDisplay->fixErrors();
|
||||
$this->redirect('/preferences/main-panel');
|
||||
$this->response->redirectToRoute('/preferences/main-panel', []);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -79,7 +76,7 @@ class MainPanelController extends AbstractController
|
||||
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
$this->response->render('preferences/header', [
|
||||
'route' => $request->getRoute(),
|
||||
'is_saved' => $request->hasQueryParam('saved'),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
@ -87,7 +84,7 @@ class MainPanelController extends AbstractController
|
||||
|
||||
$formErrors = $formDisplay->displayErrors();
|
||||
|
||||
$this->render('preferences/forms/main', [
|
||||
$this->response->render('preferences/forms/main', [
|
||||
'error' => $GLOBALS['error'] instanceof Message ? $GLOBALS['error']->getDisplay() : '',
|
||||
'has_errors' => $formDisplay->hasErrors(),
|
||||
'errors' => $formErrors,
|
||||
|
||||
@ -8,14 +8,13 @@ use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Config\ConfigFile;
|
||||
use PhpMyAdmin\Config\Forms\User\UserFormList;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\File;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Theme\ThemeManager;
|
||||
use PhpMyAdmin\UserPreferences;
|
||||
use PhpMyAdmin\Util;
|
||||
@ -44,17 +43,15 @@ use const UPLOAD_ERR_OK;
|
||||
/**
|
||||
* User preferences management page.
|
||||
*/
|
||||
class ManageController extends AbstractController
|
||||
final class ManageController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private UserPreferences $userPreferences,
|
||||
private Relation $relation,
|
||||
private Config $config,
|
||||
private ThemeManager $themeManager,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly UserPreferences $userPreferences,
|
||||
private readonly Relation $relation,
|
||||
private readonly Config $config,
|
||||
private readonly ThemeManager $themeManager,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -169,13 +166,13 @@ class ManageController extends AbstractController
|
||||
// mimic original form and post json in a hidden field
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
$this->response->render('preferences/header', [
|
||||
'route' => $route,
|
||||
'is_saved' => $request->hasQueryParam('saved'),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
]);
|
||||
|
||||
$this->render('preferences/manage/error', [
|
||||
$this->response->render('preferences/manage/error', [
|
||||
'form_errors' => $formDisplay->displayErrors(),
|
||||
'json' => $json,
|
||||
'import_merge' => $request->getParsedBodyParam('import_merge'),
|
||||
@ -245,7 +242,7 @@ class ManageController extends AbstractController
|
||||
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
$this->response->render('preferences/header', [
|
||||
'route' => $route,
|
||||
'is_saved' => $request->hasQueryParam('saved'),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
@ -259,7 +256,7 @@ class ManageController extends AbstractController
|
||||
$GLOBALS['error']->getDisplay();
|
||||
}
|
||||
|
||||
$this->render('preferences/manage/main', [
|
||||
$this->response->render('preferences/manage/main', [
|
||||
'error' => $GLOBALS['error'],
|
||||
'max_upload_size' => Config::getInstance()->get('max_upload_size'),
|
||||
'exists_setup_and_not_exists_config' => @file_exists(ROOT_PATH . 'setup/index.php')
|
||||
|
||||
@ -8,13 +8,12 @@ use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Config\ConfigFile;
|
||||
use PhpMyAdmin\Config\Forms\User\NaviForm;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Theme\ThemeManager;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
use PhpMyAdmin\Url;
|
||||
@ -23,17 +22,15 @@ use PhpMyAdmin\UserPreferences;
|
||||
use function define;
|
||||
use function ltrim;
|
||||
|
||||
class NavigationController extends AbstractController
|
||||
final class NavigationController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private UserPreferences $userPreferences,
|
||||
private Relation $relation,
|
||||
private Config $config,
|
||||
private ThemeManager $themeManager,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly UserPreferences $userPreferences,
|
||||
private readonly Relation $relation,
|
||||
private readonly Config $config,
|
||||
private readonly ThemeManager $themeManager,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -51,7 +48,7 @@ class NavigationController extends AbstractController
|
||||
if ($request->hasBodyParam('revert')) {
|
||||
// revert erroneous fields to their default values
|
||||
$formDisplay->fixErrors();
|
||||
$this->redirect('/preferences/navigation');
|
||||
$this->response->redirectToRoute('/preferences/navigation', []);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -79,7 +76,7 @@ class NavigationController extends AbstractController
|
||||
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
$this->response->render('preferences/header', [
|
||||
'route' => $request->getRoute(),
|
||||
'is_saved' => $request->hasQueryParam('saved'),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
@ -87,7 +84,7 @@ class NavigationController extends AbstractController
|
||||
|
||||
$formErrors = $formDisplay->displayErrors();
|
||||
|
||||
$this->render('preferences/forms/main', [
|
||||
$this->response->render('preferences/forms/main', [
|
||||
'error' => $GLOBALS['error'] instanceof Message ? $GLOBALS['error']->getDisplay() : '',
|
||||
'has_errors' => $formDisplay->hasErrors(),
|
||||
'errors' => $formErrors,
|
||||
|
||||
@ -8,13 +8,12 @@ use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Config\ConfigFile;
|
||||
use PhpMyAdmin\Config\Forms\User\SqlForm;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Theme\ThemeManager;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
use PhpMyAdmin\Url;
|
||||
@ -23,17 +22,15 @@ use PhpMyAdmin\UserPreferences;
|
||||
use function define;
|
||||
use function ltrim;
|
||||
|
||||
class SqlController extends AbstractController
|
||||
final class SqlController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private UserPreferences $userPreferences,
|
||||
private Relation $relation,
|
||||
private Config $config,
|
||||
private ThemeManager $themeManager,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly UserPreferences $userPreferences,
|
||||
private readonly Relation $relation,
|
||||
private readonly Config $config,
|
||||
private readonly ThemeManager $themeManager,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -51,7 +48,7 @@ class SqlController extends AbstractController
|
||||
if ($request->hasBodyParam('revert')) {
|
||||
// revert erroneous fields to their default values
|
||||
$formDisplay->fixErrors();
|
||||
$this->redirect('/preferences/sql');
|
||||
$this->response->redirectToRoute('/preferences/sql', []);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -79,7 +76,7 @@ class SqlController extends AbstractController
|
||||
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
$this->response->render('preferences/header', [
|
||||
'route' => $request->getRoute(),
|
||||
'is_saved' => $request->hasQueryParam('saved'),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
@ -87,7 +84,7 @@ class SqlController extends AbstractController
|
||||
|
||||
$formErrors = $formDisplay->displayErrors();
|
||||
|
||||
$this->render('preferences/forms/main', [
|
||||
$this->response->render('preferences/forms/main', [
|
||||
'error' => $GLOBALS['error'] instanceof Message ? $GLOBALS['error']->getDisplay() : '',
|
||||
'has_errors' => $formDisplay->hasErrors(),
|
||||
'errors' => $formErrors,
|
||||
|
||||
@ -6,30 +6,28 @@ namespace PhpMyAdmin\Controllers\Preferences;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
|
||||
use function __;
|
||||
use function count;
|
||||
use function define;
|
||||
|
||||
class TwoFactorController extends AbstractController
|
||||
final class TwoFactorController implements InvocableController
|
||||
{
|
||||
public function __construct(ResponseRenderer $response, Template $template, private Relation $relation)
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly Relation $relation)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
$this->response->render('preferences/header', [
|
||||
'route' => $request->getRoute(),
|
||||
'is_saved' => $request->hasQueryParam('saved'),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
@ -39,7 +37,7 @@ class TwoFactorController extends AbstractController
|
||||
|
||||
if ($request->hasBodyParam('2fa_remove')) {
|
||||
if (! $twoFactor->check($request, true)) {
|
||||
$this->render('preferences/two_factor/confirm', ['form' => $twoFactor->render($request)]);
|
||||
$this->response->render('preferences/two_factor/confirm', ['form' => $twoFactor->render($request)]);
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -50,7 +48,7 @@ class TwoFactorController extends AbstractController
|
||||
);
|
||||
} elseif ($request->hasBodyParam('2fa_configure')) {
|
||||
if (! $twoFactor->configure($request, $request->getParsedBodyParam('2fa_configure'))) {
|
||||
$this->render('preferences/two_factor/configure', [
|
||||
$this->response->render('preferences/two_factor/configure', [
|
||||
'form' => $twoFactor->setup($request),
|
||||
'configure' => $request->getParsedBodyParam('2fa_configure'),
|
||||
]);
|
||||
@ -64,7 +62,7 @@ class TwoFactorController extends AbstractController
|
||||
}
|
||||
|
||||
$backend = $twoFactor->getBackend();
|
||||
$this->render('preferences/two_factor/main', [
|
||||
$this->response->render('preferences/two_factor/main', [
|
||||
'enabled' => $twoFactor->isWritable(),
|
||||
'num_backends' => count($twoFactor->getAvailable()),
|
||||
'backend_id' => $backend::$id,
|
||||
|
||||
@ -8,9 +8,14 @@ use PhpMyAdmin\Favorites\RecentFavoriteTables;
|
||||
use PhpMyAdmin\Favorites\TableType;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
|
||||
final class RecentTablesListController extends AbstractController
|
||||
final class RecentTablesListController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseRenderer $response)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
{
|
||||
if (! $request->isAjax()) {
|
||||
|
||||
@ -21,9 +21,9 @@ use function mb_strlen;
|
||||
/**
|
||||
* Schema export handler
|
||||
*/
|
||||
class SchemaExportController implements InvocableController
|
||||
final class SchemaExportController implements InvocableController
|
||||
{
|
||||
public function __construct(private Export $export, private ResponseRenderer $response)
|
||||
public function __construct(private readonly Export $export, private readonly ResponseRenderer $response)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -5,14 +5,13 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Server;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Html\Generator;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
|
||||
@ -21,7 +20,7 @@ use function array_key_exists;
|
||||
/**
|
||||
* Handles viewing binary logs
|
||||
*/
|
||||
final class BinlogController extends AbstractController
|
||||
final class BinlogController implements InvocableController
|
||||
{
|
||||
/**
|
||||
* binary log files
|
||||
@ -30,10 +29,8 @@ final class BinlogController extends AbstractController
|
||||
*/
|
||||
private array $binaryLogs;
|
||||
|
||||
public function __construct(ResponseRenderer $response, Template $template, private DatabaseInterface $dbi)
|
||||
public function __construct(private readonly ResponseRenderer $response, private readonly DatabaseInterface $dbi)
|
||||
{
|
||||
parent::__construct($response, $template);
|
||||
|
||||
$this->binaryLogs = $this->dbi->fetchResult('SHOW MASTER LOGS', 'Log_name');
|
||||
}
|
||||
|
||||
@ -86,7 +83,7 @@ final class BinlogController extends AbstractController
|
||||
|
||||
$values = $result->fetchAllAssoc();
|
||||
|
||||
$this->render('server/binlog/index', [
|
||||
$this->response->render('server/binlog/index', [
|
||||
'url_params' => $urlParams,
|
||||
'binary_logs' => $this->binaryLogs,
|
||||
'log' => $log,
|
||||
|
||||
@ -8,18 +8,17 @@ use PhpMyAdmin\Charsets;
|
||||
use PhpMyAdmin\Charsets\Charset;
|
||||
use PhpMyAdmin\Charsets\Collation;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
|
||||
/**
|
||||
* Handles viewing character sets and collations
|
||||
*/
|
||||
class CollationsController extends AbstractController
|
||||
final class CollationsController implements InvocableController
|
||||
{
|
||||
/** @var array<string, Charset> */
|
||||
private array $charsets;
|
||||
@ -32,14 +31,11 @@ class CollationsController extends AbstractController
|
||||
* @param array<string, array<string, Collation>>|null $collations
|
||||
*/
|
||||
public function __construct(
|
||||
ResponseRenderer $response,
|
||||
Template $template,
|
||||
private DatabaseInterface $dbi,
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly DatabaseInterface $dbi,
|
||||
array|null $charsets = null,
|
||||
array|null $collations = null,
|
||||
) {
|
||||
parent::__construct($response, $template);
|
||||
|
||||
$config = Config::getInstance();
|
||||
$this->charsets = $charsets ?? Charsets::getCharsets($this->dbi, $config->selectedServer['DisableIS']);
|
||||
$this->collations = $collations ?? Charsets::getCollations($this->dbi, $config->selectedServer['DisableIS']);
|
||||
@ -71,7 +67,7 @@ class CollationsController extends AbstractController
|
||||
];
|
||||
}
|
||||
|
||||
$this->render('server/collations/index', ['charsets' => $charsets]);
|
||||
$this->response->render('server/collations/index', ['charsets' => $charsets]);
|
||||
|
||||
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