From c965d07f68ff0d5766da4b32a09a181784530ef3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Sun, 7 Apr 2024 16:34:11 -0300 Subject: [PATCH] Remove Controllers\AbstractController abstract class MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MaurĂ­cio Meneghini Fauth --- src/Controllers/AbstractController.php | 15 -------------- .../BrowseForeignersController.php | 11 +++++----- src/Controllers/ChangeLogController.php | 10 ++++++---- src/Controllers/CheckRelationsController.php | 10 ++++++---- .../CollationConnectionController.php | 10 ++++++---- src/Controllers/ColumnController.php | 10 ++++++---- .../Console/Bookmark/AddController.php | 9 ++++----- .../Console/Bookmark/RefreshController.php | 11 +++++----- .../Console/UpdateConfigController.php | 12 ++++++----- .../PopulateColumnsController.php | 11 +++++----- .../Database/CentralColumnsController.php | 11 +++++----- .../Database/DataDictionaryController.php | 15 +++++++------- .../Database/DesignerController.php | 13 ++++++------ src/Controllers/Database/EventsController.php | 13 ++++++------ src/Controllers/Database/ExportController.php | 15 +++++++------- src/Controllers/Database/ImportController.php | 13 ++++++------ .../MultiTableQuery/QueryController.php | 10 ++++++++-- .../MultiTableQuery/TablesController.php | 12 ++++++----- .../Database/MultiTableQueryController.php | 12 ++++++----- .../Database/PrivilegesController.php | 13 ++++++------ .../Database/RoutinesController.php | 15 +++++++------- src/Controllers/Database/SearchController.php | 11 +++++----- .../Database/SqlAutoCompleteController.php | 9 ++++----- src/Controllers/Database/SqlController.php | 13 ++++++------ .../Database/SqlFormatController.php | 10 ++++++++-- .../Structure/AddPrefixController.php | 10 ++++++++-- .../Structure/AddPrefixTableController.php | 13 ++++++------ .../CentralColumns/AddController.php | 13 ++++++------ .../MakeConsistentController.php | 13 ++++++------ .../CentralColumns/RemoveController.php | 13 ++++++------ .../Structure/ChangePrefixFormController.php | 10 ++++++++-- .../Database/Structure/CopyFormController.php | 10 ++++++++-- .../Structure/CopyTableController.php | 13 ++++++------ .../CopyTableWithPrefixController.php | 11 +++++----- .../Database/Structure/DropFormController.php | 12 ++++++----- .../Structure/DropTableController.php | 15 +++++++------- .../Structure/EmptyFormController.php | 10 ++++++++-- .../Structure/EmptyTableController.php | 19 +++++++++--------- .../Structure/FavoriteTableController.php | 11 +++++----- .../Structure/RealRowCountController.php | 11 +++++----- .../Structure/ReplacePrefixController.php | 13 ++++++------ .../Structure/ShowCreateController.php | 12 ++++++----- .../Database/StructureController.php | 20 +++++++++---------- .../Database/TrackingController.php | 13 ++++++------ src/Controllers/DatabaseController.php | 10 ++++++---- src/Controllers/ErrorReportController.php | 13 ++++++------ .../Export/CheckTimeOutController.php | 10 ++++++++-- src/Controllers/Export/ExportController.php | 12 ++++++----- src/Controllers/Export/TablesController.php | 11 +++++----- .../Export/Template/CreateController.php | 13 ++++++------ .../Export/Template/DeleteController.php | 13 ++++++------ .../Export/Template/LoadController.php | 13 ++++++------ .../Export/Template/UpdateController.php | 13 ++++++------ src/Controllers/GisDataEditorController.php | 8 +++++++- src/Controllers/GitInfoController.php | 10 ++++++---- src/Controllers/HomeController.php | 13 ++++++------ src/Controllers/Import/ImportController.php | 15 +++++++------- .../Import/SimulateDmlController.php | 11 +++++----- src/Controllers/Import/StatusController.php | 2 +- src/Controllers/LicenseController.php | 8 +++++++- src/Controllers/LintController.php | 8 +++++++- src/Controllers/LogoutController.php | 4 ++-- .../UpdateNavWidthConfigController.php | 12 ++++++----- src/Controllers/NavigationController.php | 13 ++++++------ .../Normalization/AddNewPrimaryController.php | 11 +++++----- .../CreateNewColumnController.php | 11 +++++----- .../FirstNormalForm/FirstStepController.php | 12 ++++++----- .../FirstNormalForm/FourthStepController.php | 12 ++++++----- .../FirstNormalForm/SecondStepController.php | 12 ++++++----- .../FirstNormalForm/ThirdStepController.php | 12 ++++++----- .../Normalization/GetColumnsController.php | 12 ++++++----- .../Normalization/MainController.php | 10 ++++++++-- .../Normalization/MoveRepeatingGroup.php | 12 ++++++----- .../PartialDependenciesController.php | 12 ++++++----- .../CreateNewTablesController.php | 12 ++++++----- .../SecondNormalForm/FirstStepController.php | 12 ++++++----- .../SecondNormalForm/NewTablesController.php | 12 ++++++----- .../CreateNewTablesController.php | 12 ++++++----- .../ThirdNormalForm/FirstStepController.php | 12 ++++++----- .../ThirdNormalForm/NewTablesController.php | 12 ++++++----- .../Database/CollationController.php | 13 ++++++------ .../Operations/DatabaseController.php | 19 +++++++++--------- .../Operations/TableController.php | 17 ++++++++-------- src/Controllers/Operations/ViewController.php | 11 +++++----- src/Controllers/PhpInfoController.php | 8 +++++++- .../Preferences/ExportController.php | 17 ++++++++-------- .../Preferences/FeaturesController.php | 17 ++++++++-------- .../Preferences/ImportController.php | 17 ++++++++-------- .../Preferences/MainPanelController.php | 17 ++++++++-------- .../Preferences/ManageController.php | 17 ++++++++-------- .../Preferences/NavigationController.php | 17 ++++++++-------- src/Controllers/Preferences/SqlController.php | 17 ++++++++-------- .../Preferences/TwoFactorController.php | 12 ++++++----- .../RecentTablesListController.php | 8 +++++++- src/Controllers/SchemaExportController.php | 4 ++-- src/Controllers/Server/BinlogController.php | 13 ++++++------ .../Server/CollationsController.php | 12 +++++------ .../Server/Databases/CreateController.php | 12 ++++++----- .../Server/Databases/DestroyController.php | 15 +++++++------- .../Server/DatabasesController.php | 11 +++++----- src/Controllers/Server/EnginesController.php | 12 ++++++----- src/Controllers/Server/ExportController.php | 15 +++++++------- src/Controllers/Server/ImportController.php | 13 ++++++------ src/Controllers/Server/PluginsController.php | 13 ++++++------ .../Privileges/AccountLockController.php | 12 ++++++----- .../Privileges/AccountUnlockController.php | 12 ++++++----- .../Server/PrivilegesController.php | 13 ++++++------ .../Server/ReplicationController.php | 13 ++++++------ .../Server/ShowEngineController.php | 12 ++++++----- src/Controllers/Server/SqlController.php | 15 +++++++------- .../Server/Status/AbstractController.php | 11 +++++----- .../Server/Status/AdvisorController.php | 11 +++++++--- .../Status/Monitor/ChartingDataController.php | 7 ++++--- .../Status/Monitor/GeneralLogController.php | 7 ++++--- .../Status/Monitor/LogVarsController.php | 7 ++++--- .../Monitor/QueryAnalyzerController.php | 7 ++++--- .../Status/Monitor/SlowLogController.php | 7 ++++--- .../Server/Status/MonitorController.php | 5 +++-- .../Status/Processes/KillController.php | 5 +++-- .../Status/Processes/RefreshController.php | 5 +++-- .../Server/Status/ProcessesController.php | 7 ++++--- .../Server/Status/QueriesController.php | 5 +++-- .../Server/Status/StatusController.php | 7 ++++--- .../Server/Status/VariablesController.php | 5 +++-- .../Server/UserGroupsController.php | 13 ++++++------ .../Server/UserGroupsFormController.php | 13 ++++++------ .../Variables/GetVariableController.php | 12 ++++++----- .../Variables/SetVariableController.php | 12 ++++++----- .../Server/VariablesController.php | 12 ++++++----- .../Sql/ColumnPreferencesController.php | 11 +++++----- .../DefaultForeignKeyCheckValueController.php | 10 ++++++++-- src/Controllers/Sql/EnumValuesController.php | 11 +++++----- .../Sql/RelationalValuesController.php | 11 +++++----- src/Controllers/Sql/SetValuesController.php | 11 +++++----- src/Controllers/Sql/SqlController.php | 15 +++++++------- src/Controllers/Table/AddFieldController.php | 17 ++++++++-------- src/Controllers/Table/ChangeController.php | 15 +++++++------- .../Table/ChangeRowsController.php | 11 +++++----- src/Controllers/Table/ChartController.php | 11 +++++----- src/Controllers/Table/CreateController.php | 17 ++++++++-------- .../Table/DeleteConfirmController.php | 9 ++++----- .../Table/DeleteRowsController.php | 11 +++++----- .../DropColumnConfirmationController.php | 9 ++++----- .../Table/DropColumnController.php | 15 +++++++------- src/Controllers/Table/ExportController.php | 13 ++++++------ .../Table/ExportRowsController.php | 11 +++++----- .../Table/FindReplaceController.php | 11 +++++----- src/Controllers/Table/GetFieldController.php | 11 +++++----- .../Table/GisVisualizationController.php | 11 +++++----- src/Controllers/Table/ImportController.php | 13 ++++++------ .../Table/IndexRenameController.php | 13 ++++++------ src/Controllers/Table/IndexesController.php | 13 ++++++------ .../Table/Maintenance/AnalyzeController.php | 13 ++++++------ .../Table/Maintenance/CheckController.php | 13 ++++++------ .../Table/Maintenance/ChecksumController.php | 13 ++++++------ .../Table/Maintenance/OptimizeController.php | 13 ++++++------ .../Table/Maintenance/RepairController.php | 13 ++++++------ .../Table/Partition/AnalyzeController.php | 11 +++++----- .../Table/Partition/CheckController.php | 11 +++++----- .../Table/Partition/DropController.php | 11 +++++----- .../Table/Partition/OptimizeController.php | 11 +++++----- .../Table/Partition/RebuildController.php | 11 +++++----- .../Table/Partition/RepairController.php | 11 +++++----- .../Table/Partition/TruncateController.php | 11 +++++----- .../Table/PrivilegesController.php | 13 ++++++------ .../Table/RecentFavoriteController.php | 10 ++++++++-- src/Controllers/Table/RelationController.php | 13 ++++++------ src/Controllers/Table/ReplaceController.php | 17 ++++++++-------- src/Controllers/Table/SearchController.php | 15 +++++++------- src/Controllers/Table/SqlController.php | 13 ++++++------ .../Structure/AbstractIndexController.php | 12 +++++------ .../Table/Structure/AddIndexController.php | 3 ++- .../Table/Structure/AddKeyController.php | 13 ++++++------ .../Table/Structure/BrowseController.php | 12 ++++++----- .../Structure/CentralColumnsAddController.php | 13 ++++++------ .../CentralColumnsRemoveController.php | 13 ++++++------ .../Table/Structure/ChangeController.php | 13 ++++++------ .../Table/Structure/FulltextController.php | 3 ++- .../Table/Structure/MoveColumnsController.php | 12 +++++------ .../Structure/PartitioningController.php | 17 ++++++++-------- .../Table/Structure/PrimaryController.php | 13 ++++++------ .../Structure/ReservedWordCheckController.php | 10 ++++++++-- .../Table/Structure/SaveController.php | 18 ++++++++--------- .../Table/Structure/SpatialController.php | 3 ++- .../Table/Structure/UniqueController.php | 3 ++- src/Controllers/Table/StructureController.php | 18 ++++++++--------- src/Controllers/Table/TrackingController.php | 13 ++++++------ .../Table/ZoomSearchController.php | 15 +++++++------- src/Controllers/TableController.php | 10 ++++++---- src/Controllers/ThemeSetController.php | 11 +++++----- src/Controllers/ThemesController.php | 10 ++++++---- .../Transformation/OverviewController.php | 11 +++++----- .../Transformation/WrapperController.php | 17 ++++++++-------- src/Controllers/Triggers/IndexController.php | 13 ++++++------ src/Controllers/UserPasswordController.php | 11 +++++----- src/Controllers/VersionCheckController.php | 9 ++++----- src/Controllers/View/CreateController.php | 11 +++++----- 197 files changed, 1181 insertions(+), 1127 deletions(-) delete mode 100644 src/Controllers/AbstractController.php diff --git a/src/Controllers/AbstractController.php b/src/Controllers/AbstractController.php deleted file mode 100644 index b209723224..0000000000 --- a/src/Controllers/AbstractController.php +++ /dev/null @@ -1,15 +0,0 @@ -response->addHTML(MultiTableQuery::displayResults( diff --git a/src/Controllers/Database/MultiTableQuery/TablesController.php b/src/Controllers/Database/MultiTableQuery/TablesController.php index 8b26aebb5a..b3709d71d0 100644 --- a/src/Controllers/Database/MultiTableQuery/TablesController.php +++ b/src/Controllers/Database/MultiTableQuery/TablesController.php @@ -4,7 +4,7 @@ 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; @@ -15,11 +15,13 @@ 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) - { - 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 diff --git a/src/Controllers/Database/MultiTableQueryController.php b/src/Controllers/Database/MultiTableQueryController.php index 280419c039..82b19e1423 100644 --- a/src/Controllers/Database/MultiTableQueryController.php +++ b/src/Controllers/Database/MultiTableQueryController.php @@ -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,11 +16,13 @@ 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 diff --git a/src/Controllers/Database/PrivilegesController.php b/src/Controllers/Database/PrivilegesController.php index f87e39cc90..379ab8d94a 100644 --- a/src/Controllers/Database/PrivilegesController.php +++ b/src/Controllers/Database/PrivilegesController.php @@ -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; @@ -27,15 +27,14 @@ 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 Template $template, + private readonly Privileges $privileges, + private readonly DatabaseInterface $dbi, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Database/RoutinesController.php b/src/Controllers/Database/RoutinesController.php index 9c791ce47f..d2dbf65638 100644 --- a/src/Controllers/Database/RoutinesController.php +++ b/src/Controllers/Database/RoutinesController.php @@ -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 diff --git a/src/Controllers/Database/SearchController.php b/src/Controllers/Database/SearchController.php index 291bcf0c94..ac2f4ab799 100644 --- a/src/Controllers/Database/SearchController.php +++ b/src/Controllers/Database/SearchController.php @@ -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 diff --git a/src/Controllers/Database/SqlAutoCompleteController.php b/src/Controllers/Database/SqlAutoCompleteController.php index 87034c4a38..759635e42c 100644 --- a/src/Controllers/Database/SqlAutoCompleteController.php +++ b/src/Controllers/Database/SqlAutoCompleteController.php @@ -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\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -18,15 +18,14 @@ 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 Template $template, private readonly DatabaseInterface $dbi, private readonly Config $config, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Database/SqlController.php b/src/Controllers/Database/SqlController.php index 3c46fda754..23619706a2 100644 --- a/src/Controllers/Database/SqlController.php +++ b/src/Controllers/Database/SqlController.php @@ -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; @@ -25,16 +25,15 @@ 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 Template $template, + private readonly SqlQueryForm $sqlQueryForm, + private readonly PageSettings $pageSettings, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Database/SqlFormatController.php b/src/Controllers/Database/SqlFormatController.php index 4916bd370b..afbceaaa89 100644 --- a/src/Controllers/Database/SqlFormatController.php +++ b/src/Controllers/Database/SqlFormatController.php @@ -4,16 +4,22 @@ 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; +use PhpMyAdmin\Template; /** * Format SQL for SQL editors. */ -class SqlFormatController extends AbstractController +final class SqlFormatController implements InvocableController { + public function __construct(private readonly ResponseRenderer $response, private readonly Template $template) + { + } + public function __invoke(ServerRequest $request): Response|null { /** @var string $query */ diff --git a/src/Controllers/Database/Structure/AddPrefixController.php b/src/Controllers/Database/Structure/AddPrefixController.php index f08bb03986..10f966ad50 100644 --- a/src/Controllers/Database/Structure/AddPrefixController.php +++ b/src/Controllers/Database/Structure/AddPrefixController.php @@ -4,15 +4,21 @@ 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\Template; use function __; -final class AddPrefixController extends AbstractController +final class AddPrefixController implements InvocableController { + public function __construct(private readonly ResponseRenderer $response, private readonly Template $template) + { + } + public function __invoke(ServerRequest $request): Response|null { /** @var string[] $selected */ diff --git a/src/Controllers/Database/Structure/AddPrefixTableController.php b/src/Controllers/Database/Structure/AddPrefixTableController.php index 230713117c..c26ddb96cf 100644 --- a/src/Controllers/Database/Structure/AddPrefixTableController.php +++ b/src/Controllers/Database/Structure/AddPrefixTableController.php @@ -4,8 +4,8 @@ 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; @@ -15,15 +15,14 @@ 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 ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, + private readonly StructureController $structureController, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Database/Structure/CentralColumns/AddController.php b/src/Controllers/Database/Structure/CentralColumns/AddController.php index bd407f42be..1d00d7dd6e 100644 --- a/src/Controllers/Database/Structure/CentralColumns/AddController.php +++ b/src/Controllers/Database/Structure/CentralColumns/AddController.php @@ -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; @@ -19,15 +19,14 @@ 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 Template $template, + private readonly DatabaseInterface $dbi, + private readonly StructureController $structureController, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Database/Structure/CentralColumns/MakeConsistentController.php b/src/Controllers/Database/Structure/CentralColumns/MakeConsistentController.php index 420854d727..0d5f97f3b2 100644 --- a/src/Controllers/Database/Structure/CentralColumns/MakeConsistentController.php +++ b/src/Controllers/Database/Structure/CentralColumns/MakeConsistentController.php @@ -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; @@ -19,15 +19,14 @@ 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 Template $template, + private readonly DatabaseInterface $dbi, + private readonly StructureController $structureController, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Database/Structure/CentralColumns/RemoveController.php b/src/Controllers/Database/Structure/CentralColumns/RemoveController.php index b101c660f3..d636347f2a 100644 --- a/src/Controllers/Database/Structure/CentralColumns/RemoveController.php +++ b/src/Controllers/Database/Structure/CentralColumns/RemoveController.php @@ -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; @@ -18,15 +18,14 @@ 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 Template $template, + private readonly DatabaseInterface $dbi, + private readonly StructureController $structureController, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Database/Structure/ChangePrefixFormController.php b/src/Controllers/Database/Structure/ChangePrefixFormController.php index 78a9216c7f..25560f8505 100644 --- a/src/Controllers/Database/Structure/ChangePrefixFormController.php +++ b/src/Controllers/Database/Structure/ChangePrefixFormController.php @@ -4,15 +4,21 @@ 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\Template; use function __; -final class ChangePrefixFormController extends AbstractController +final class ChangePrefixFormController implements InvocableController { + public function __construct(private readonly ResponseRenderer $response, private readonly Template $template) + { + } + public function __invoke(ServerRequest $request): Response|null { /** @var string[] $selected */ diff --git a/src/Controllers/Database/Structure/CopyFormController.php b/src/Controllers/Database/Structure/CopyFormController.php index af8d824d1a..a674e257c2 100644 --- a/src/Controllers/Database/Structure/CopyFormController.php +++ b/src/Controllers/Database/Structure/CopyFormController.php @@ -4,16 +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 function __; -final class CopyFormController extends AbstractController +final class CopyFormController implements InvocableController { + public function __construct(private readonly ResponseRenderer $response, private readonly Template $template) + { + } + public function __invoke(ServerRequest $request): Response|null { /** @var string[] $selected */ diff --git a/src/Controllers/Database/Structure/CopyTableController.php b/src/Controllers/Database/Structure/CopyTableController.php index 4ae08dc85b..16b7182338 100644 --- a/src/Controllers/Database/Structure/CopyTableController.php +++ b/src/Controllers/Database/Structure/CopyTableController.php @@ -4,8 +4,8 @@ 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; @@ -16,16 +16,15 @@ 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 ResponseRenderer $response, + private readonly Template $template, + private readonly Operations $operations, + private readonly StructureController $structureController, private readonly UserPrivilegesFactory $userPrivilegesFactory, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Database/Structure/CopyTableWithPrefixController.php b/src/Controllers/Database/Structure/CopyTableWithPrefixController.php index 98d1bc4561..da71a7ca7d 100644 --- a/src/Controllers/Database/Structure/CopyTableWithPrefixController.php +++ b/src/Controllers/Database/Structure/CopyTableWithPrefixController.php @@ -4,8 +4,8 @@ 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; @@ -17,14 +17,13 @@ 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, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly StructureController $structureController, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Database/Structure/DropFormController.php b/src/Controllers/Database/Structure/DropFormController.php index 6ed617a0c0..c31297b65b 100644 --- a/src/Controllers/Database/Structure/DropFormController.php +++ b/src/Controllers/Database/Structure/DropFormController.php @@ -4,7 +4,7 @@ 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; @@ -17,11 +17,13 @@ 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) - { - 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 diff --git a/src/Controllers/Database/Structure/DropTableController.php b/src/Controllers/Database/Structure/DropTableController.php index 177da1ecc7..6c4bf6bdf6 100644 --- a/src/Controllers/Database/Structure/DropTableController.php +++ b/src/Controllers/Database/Structure/DropTableController.php @@ -5,8 +5,8 @@ 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; @@ -19,16 +19,15 @@ 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 ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, + private readonly RelationCleanup $relationCleanup, + private readonly StructureController $structureController, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Database/Structure/EmptyFormController.php b/src/Controllers/Database/Structure/EmptyFormController.php index ab7c036388..69b91f2f47 100644 --- a/src/Controllers/Database/Structure/EmptyFormController.php +++ b/src/Controllers/Database/Structure/EmptyFormController.php @@ -4,18 +4,24 @@ 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\Template; 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, private readonly Template $template) + { + } + public function __invoke(ServerRequest $request): Response|null { /** @var string[] $selected */ diff --git a/src/Controllers/Database/Structure/EmptyTableController.php b/src/Controllers/Database/Structure/EmptyTableController.php index 5b1d257f77..183b626d4b 100644 --- a/src/Controllers/Database/Structure/EmptyTableController.php +++ b/src/Controllers/Database/Structure/EmptyTableController.php @@ -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 diff --git a/src/Controllers/Database/Structure/FavoriteTableController.php b/src/Controllers/Database/Structure/FavoriteTableController.php index d1e8137a46..0f4e484cc9 100644 --- a/src/Controllers/Database/Structure/FavoriteTableController.php +++ b/src/Controllers/Database/Structure/FavoriteTableController.php @@ -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 diff --git a/src/Controllers/Database/Structure/RealRowCountController.php b/src/Controllers/Database/Structure/RealRowCountController.php index c835d78f9c..8d3eaaf03d 100644 --- a/src/Controllers/Database/Structure/RealRowCountController.php +++ b/src/Controllers/Database/Structure/RealRowCountController.php @@ -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; @@ -23,15 +23,14 @@ 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 Template $template, + private readonly DatabaseInterface $dbi, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Database/Structure/ReplacePrefixController.php b/src/Controllers/Database/Structure/ReplacePrefixController.php index c00ddbc7aa..d6a3a40b38 100644 --- a/src/Controllers/Database/Structure/ReplacePrefixController.php +++ b/src/Controllers/Database/Structure/ReplacePrefixController.php @@ -4,8 +4,8 @@ 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; @@ -18,15 +18,14 @@ 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 ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, + private readonly StructureController $structureController, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Database/Structure/ShowCreateController.php b/src/Controllers/Database/Structure/ShowCreateController.php index 0c3bb930b8..881b1ae6ae 100644 --- a/src/Controllers/Database/Structure/ShowCreateController.php +++ b/src/Controllers/Database/Structure/ShowCreateController.php @@ -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 diff --git a/src/Controllers/Database/StructureController.php b/src/Controllers/Database/StructureController.php index 5508fe82f1..c67bbea4b7 100644 --- a/src/Controllers/Database/StructureController.php +++ b/src/Controllers/Database/StructureController.php @@ -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); } diff --git a/src/Controllers/Database/TrackingController.php b/src/Controllers/Database/TrackingController.php index 82d8fb2ddb..bb7e660d65 100644 --- a/src/Controllers/Database/TrackingController.php +++ b/src/Controllers/Database/TrackingController.php @@ -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; @@ -29,16 +29,15 @@ 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 Template $template, + private readonly Tracking $tracking, + private readonly DatabaseInterface $dbi, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/DatabaseController.php b/src/Controllers/DatabaseController.php index a72174ead8..0c762dcad3 100644 --- a/src/Controllers/DatabaseController.php +++ b/src/Controllers/DatabaseController.php @@ -10,11 +10,13 @@ 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) - { - 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 diff --git a/src/Controllers/ErrorReportController.php b/src/Controllers/ErrorReportController.php index 5be1f83de5..ab80cae58c 100644 --- a/src/Controllers/ErrorReportController.php +++ b/src/Controllers/ErrorReportController.php @@ -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 diff --git a/src/Controllers/Export/CheckTimeOutController.php b/src/Controllers/Export/CheckTimeOutController.php index 95b5c12579..d70cc20a0c 100644 --- a/src/Controllers/Export/CheckTimeOutController.php +++ b/src/Controllers/Export/CheckTimeOutController.php @@ -4,12 +4,18 @@ 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; +use PhpMyAdmin\Template; -final class CheckTimeOutController extends AbstractController +final class CheckTimeOutController implements InvocableController { + public function __construct(private readonly ResponseRenderer $response, private readonly Template $template) + { + } + public function __invoke(ServerRequest $request): Response|null { if (! $request->isAjax()) { diff --git a/src/Controllers/Export/ExportController.php b/src/Controllers/Export/ExportController.php index 9ff591e035..135c268c07 100644 --- a/src/Controllers/Export/ExportController.php +++ b/src/Controllers/Export/ExportController.php @@ -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; @@ -38,11 +38,13 @@ 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) - { - parent::__construct($response, $template); + public function __construct( + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Export $export, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Export/TablesController.php b/src/Controllers/Export/TablesController.php index 732839127f..48b8dba055 100644 --- a/src/Controllers/Export/TablesController.php +++ b/src/Controllers/Export/TablesController.php @@ -4,8 +4,8 @@ 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; @@ -13,14 +13,13 @@ 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 Template $template, + private readonly ExportController $exportController, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Export/Template/CreateController.php b/src/Controllers/Export/Template/CreateController.php index ff47cc055a..35fad9bc85 100644 --- a/src/Controllers/Export/Template/CreateController.php +++ b/src/Controllers/Export/Template/CreateController.php @@ -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 diff --git a/src/Controllers/Export/Template/DeleteController.php b/src/Controllers/Export/Template/DeleteController.php index 9ed9272cad..e4103b1f34 100644 --- a/src/Controllers/Export/Template/DeleteController.php +++ b/src/Controllers/Export/Template/DeleteController.php @@ -6,22 +6,21 @@ 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 Template $template, + private readonly TemplateModel $model, + private readonly Relation $relation, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Export/Template/LoadController.php b/src/Controllers/Export/Template/LoadController.php index 12e99041a0..10886da406 100644 --- a/src/Controllers/Export/Template/LoadController.php +++ b/src/Controllers/Export/Template/LoadController.php @@ -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; @@ -14,15 +14,14 @@ 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 Template $template, + private readonly TemplateModel $model, + private readonly Relation $relation, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Export/Template/UpdateController.php b/src/Controllers/Export/Template/UpdateController.php index bf71e6547d..28f8251dda 100644 --- a/src/Controllers/Export/Template/UpdateController.php +++ b/src/Controllers/Export/Template/UpdateController.php @@ -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; @@ -14,15 +14,14 @@ 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 Template $template, + private readonly TemplateModel $model, + private readonly Relation $relation, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/GisDataEditorController.php b/src/Controllers/GisDataEditorController.php index 07ffaa1db0..67f7f7f81c 100644 --- a/src/Controllers/GisDataEditorController.php +++ b/src/Controllers/GisDataEditorController.php @@ -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', diff --git a/src/Controllers/GitInfoController.php b/src/Controllers/GitInfoController.php index 8bd22c7b32..cb428e92da 100644 --- a/src/Controllers/GitInfoController.php +++ b/src/Controllers/GitInfoController.php @@ -14,11 +14,13 @@ 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) - { - parent::__construct($response, $template); + public function __construct( + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Config $config, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/HomeController.php b/src/Controllers/HomeController.php index c4780f7eab..57c33c7977 100644 --- a/src/Controllers/HomeController.php +++ b/src/Controllers/HomeController.php @@ -42,7 +42,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> @@ -51,14 +51,13 @@ 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 Template $template, + 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 diff --git a/src/Controllers/Import/ImportController.php b/src/Controllers/Import/ImportController.php index 1c405f73fa..538d86127e 100644 --- a/src/Controllers/Import/ImportController.php +++ b/src/Controllers/Import/ImportController.php @@ -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; @@ -48,17 +48,16 @@ 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 Template $template, + 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 diff --git a/src/Controllers/Import/SimulateDmlController.php b/src/Controllers/Import/SimulateDmlController.php index b33290f98f..2accf717e7 100644 --- a/src/Controllers/Import/SimulateDmlController.php +++ b/src/Controllers/Import/SimulateDmlController.php @@ -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; @@ -20,14 +20,13 @@ 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, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly SimulateDml $simulateDml, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Import/StatusController.php b/src/Controllers/Import/StatusController.php index 23544e41ab..af9ee11bb2 100644 --- a/src/Controllers/Import/StatusController.php +++ b/src/Controllers/Import/StatusController.php @@ -26,7 +26,7 @@ use function usleep; */ class StatusController implements InvocableController { - public function __construct(private Template $template) + public function __construct(private readonly Template $template) { } diff --git a/src/Controllers/LicenseController.php b/src/Controllers/LicenseController.php index a307653448..b1b1ce305c 100644 --- a/src/Controllers/LicenseController.php +++ b/src/Controllers/LicenseController.php @@ -9,6 +9,8 @@ namespace PhpMyAdmin\Controllers; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\ResponseRenderer; +use PhpMyAdmin\Template; use function __; use function is_readable; @@ -18,8 +20,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, private readonly Template $template) + { + } + public function __invoke(ServerRequest $request): Response|null { $this->response->disable(); diff --git a/src/Controllers/LintController.php b/src/Controllers/LintController.php index 15c14da1fa..d9aeea968f 100644 --- a/src/Controllers/LintController.php +++ b/src/Controllers/LintController.php @@ -11,6 +11,8 @@ use PhpMyAdmin\Core; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Linter; +use PhpMyAdmin\ResponseRenderer; +use PhpMyAdmin\Template; use function header; use function is_array; @@ -20,8 +22,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, private readonly Template $template) + { + } + public function __invoke(ServerRequest $request): Response|null { if (! $request->isAjax()) { diff --git a/src/Controllers/LogoutController.php b/src/Controllers/LogoutController.php index 86caa5572c..4a91810922 100644 --- a/src/Controllers/LogoutController.php +++ b/src/Controllers/LogoutController.php @@ -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) { } diff --git a/src/Controllers/Navigation/UpdateNavWidthConfigController.php b/src/Controllers/Navigation/UpdateNavWidthConfigController.php index dc45973392..fbdf19c6c4 100644 --- a/src/Controllers/Navigation/UpdateNavWidthConfigController.php +++ b/src/Controllers/Navigation/UpdateNavWidthConfigController.php @@ -5,7 +5,7 @@ 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; @@ -15,11 +15,13 @@ 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) - { - parent::__construct($response, $template); + public function __construct( + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Config $config, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/NavigationController.php b/src/Controllers/NavigationController.php index 6324400e6d..f34ae8663e 100644 --- a/src/Controllers/NavigationController.php +++ b/src/Controllers/NavigationController.php @@ -21,16 +21,15 @@ 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 Template $template, + private readonly Navigation $navigation, + private readonly Relation $relation, + private readonly PageSettings $pageSettings, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/AddNewPrimaryController.php b/src/Controllers/Normalization/AddNewPrimaryController.php index 3116de24cc..31d11d47b3 100644 --- a/src/Controllers/Normalization/AddNewPrimaryController.php +++ b/src/Controllers/Normalization/AddNewPrimaryController.php @@ -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; @@ -16,15 +16,14 @@ 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 Template $template, + private readonly Normalization $normalization, private readonly UserPrivilegesFactory $userPrivilegesFactory, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/CreateNewColumnController.php b/src/Controllers/Normalization/CreateNewColumnController.php index bf613043bf..f2a4ee56e3 100644 --- a/src/Controllers/Normalization/CreateNewColumnController.php +++ b/src/Controllers/Normalization/CreateNewColumnController.php @@ -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; @@ -16,15 +16,14 @@ 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 Template $template, + private readonly Normalization $normalization, private readonly UserPrivilegesFactory $userPrivilegesFactory, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/FirstNormalForm/FirstStepController.php b/src/Controllers/Normalization/FirstNormalForm/FirstStepController.php index b75b855b15..b9c6fc28ea 100644 --- a/src/Controllers/Normalization/FirstNormalForm/FirstStepController.php +++ b/src/Controllers/Normalization/FirstNormalForm/FirstStepController.php @@ -4,7 +4,7 @@ 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; @@ -14,11 +14,13 @@ 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 Template $template, + private readonly Normalization $normalization, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/FirstNormalForm/FourthStepController.php b/src/Controllers/Normalization/FirstNormalForm/FourthStepController.php index 7f0d9cd95d..f42ad49177 100644 --- a/src/Controllers/Normalization/FirstNormalForm/FourthStepController.php +++ b/src/Controllers/Normalization/FirstNormalForm/FourthStepController.php @@ -4,7 +4,7 @@ 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; @@ -12,11 +12,13 @@ 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 Template $template, + private readonly Normalization $normalization, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/FirstNormalForm/SecondStepController.php b/src/Controllers/Normalization/FirstNormalForm/SecondStepController.php index d3970f24b3..8f23202e6b 100644 --- a/src/Controllers/Normalization/FirstNormalForm/SecondStepController.php +++ b/src/Controllers/Normalization/FirstNormalForm/SecondStepController.php @@ -4,7 +4,7 @@ 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; @@ -12,11 +12,13 @@ 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 Template $template, + private readonly Normalization $normalization, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/FirstNormalForm/ThirdStepController.php b/src/Controllers/Normalization/FirstNormalForm/ThirdStepController.php index 323e76412c..1805094710 100644 --- a/src/Controllers/Normalization/FirstNormalForm/ThirdStepController.php +++ b/src/Controllers/Normalization/FirstNormalForm/ThirdStepController.php @@ -4,7 +4,7 @@ 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; @@ -12,11 +12,13 @@ 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 Template $template, + private readonly Normalization $normalization, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/GetColumnsController.php b/src/Controllers/Normalization/GetColumnsController.php index 3979b275b9..e3e34eeec7 100644 --- a/src/Controllers/Normalization/GetColumnsController.php +++ b/src/Controllers/Normalization/GetColumnsController.php @@ -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; @@ -15,11 +15,13 @@ 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 Template $template, + private readonly Normalization $normalization, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/MainController.php b/src/Controllers/Normalization/MainController.php index 465bf3010b..69f5a136c0 100644 --- a/src/Controllers/Normalization/MainController.php +++ b/src/Controllers/Normalization/MainController.php @@ -4,16 +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\ResponseRenderer; +use PhpMyAdmin\Template; /** * Normalization process (temporarily specific to 1NF). */ -class MainController extends AbstractController +final class MainController implements InvocableController { + public function __construct(private readonly ResponseRenderer $response, private readonly Template $template) + { + } + public function __invoke(ServerRequest $request): Response|null { $this->response->addScriptFiles(['normalization.js', 'vendor/jquery/jquery.uitablefilter.js']); diff --git a/src/Controllers/Normalization/MoveRepeatingGroup.php b/src/Controllers/Normalization/MoveRepeatingGroup.php index 4ddf9cf506..f334f11c43 100644 --- a/src/Controllers/Normalization/MoveRepeatingGroup.php +++ b/src/Controllers/Normalization/MoveRepeatingGroup.php @@ -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,11 +12,13 @@ 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 Template $template, + private readonly Normalization $normalization, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/PartialDependenciesController.php b/src/Controllers/Normalization/PartialDependenciesController.php index 42d1d5f016..40684138a4 100644 --- a/src/Controllers/Normalization/PartialDependenciesController.php +++ b/src/Controllers/Normalization/PartialDependenciesController.php @@ -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,11 +12,13 @@ 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 Template $template, + private readonly Normalization $normalization, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/SecondNormalForm/CreateNewTablesController.php b/src/Controllers/Normalization/SecondNormalForm/CreateNewTablesController.php index 9e67a799f6..f29070f0a8 100644 --- a/src/Controllers/Normalization/SecondNormalForm/CreateNewTablesController.php +++ b/src/Controllers/Normalization/SecondNormalForm/CreateNewTablesController.php @@ -4,7 +4,7 @@ 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; @@ -14,11 +14,13 @@ 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 Template $template, + private readonly Normalization $normalization, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/SecondNormalForm/FirstStepController.php b/src/Controllers/Normalization/SecondNormalForm/FirstStepController.php index f2eeee54f7..c176f85e71 100644 --- a/src/Controllers/Normalization/SecondNormalForm/FirstStepController.php +++ b/src/Controllers/Normalization/SecondNormalForm/FirstStepController.php @@ -4,7 +4,7 @@ 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; @@ -12,11 +12,13 @@ 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 Template $template, + private readonly Normalization $normalization, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/SecondNormalForm/NewTablesController.php b/src/Controllers/Normalization/SecondNormalForm/NewTablesController.php index b97b4d38cb..808db8f0cb 100644 --- a/src/Controllers/Normalization/SecondNormalForm/NewTablesController.php +++ b/src/Controllers/Normalization/SecondNormalForm/NewTablesController.php @@ -4,7 +4,7 @@ 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; @@ -14,11 +14,13 @@ 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 Template $template, + private readonly Normalization $normalization, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/ThirdNormalForm/CreateNewTablesController.php b/src/Controllers/Normalization/ThirdNormalForm/CreateNewTablesController.php index 6a2c796717..cb504a9d51 100644 --- a/src/Controllers/Normalization/ThirdNormalForm/CreateNewTablesController.php +++ b/src/Controllers/Normalization/ThirdNormalForm/CreateNewTablesController.php @@ -4,7 +4,7 @@ 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; @@ -14,11 +14,13 @@ 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 Template $template, + private readonly Normalization $normalization, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/ThirdNormalForm/FirstStepController.php b/src/Controllers/Normalization/ThirdNormalForm/FirstStepController.php index ad5dd8ca8a..95bdaefaa5 100644 --- a/src/Controllers/Normalization/ThirdNormalForm/FirstStepController.php +++ b/src/Controllers/Normalization/ThirdNormalForm/FirstStepController.php @@ -4,7 +4,7 @@ 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; @@ -12,11 +12,13 @@ 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 Template $template, + private readonly Normalization $normalization, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Normalization/ThirdNormalForm/NewTablesController.php b/src/Controllers/Normalization/ThirdNormalForm/NewTablesController.php index b2de3dac3c..9f2e1dd9d7 100644 --- a/src/Controllers/Normalization/ThirdNormalForm/NewTablesController.php +++ b/src/Controllers/Normalization/ThirdNormalForm/NewTablesController.php @@ -4,7 +4,7 @@ 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; @@ -14,11 +14,13 @@ 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 Template $template, + private readonly Normalization $normalization, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Operations/Database/CollationController.php b/src/Controllers/Operations/Database/CollationController.php index cfbe3fd830..df9dc85280 100644 --- a/src/Controllers/Operations/Database/CollationController.php +++ b/src/Controllers/Operations/Database/CollationController.php @@ -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; @@ -21,16 +21,15 @@ 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 Template $template, + private readonly Operations $operations, + private readonly DatabaseInterface $dbi, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Operations/DatabaseController.php b/src/Controllers/Operations/DatabaseController.php index 3e5b9893b5..f3c1aabce1 100644 --- a/src/Controllers/Operations/DatabaseController.php +++ b/src/Controllers/Operations/DatabaseController.php @@ -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; @@ -33,19 +33,18 @@ 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 Template $template, + 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 diff --git a/src/Controllers/Operations/TableController.php b/src/Controllers/Operations/TableController.php index 753cb30472..e30600efeb 100644 --- a/src/Controllers/Operations/TableController.php +++ b/src/Controllers/Operations/TableController.php @@ -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; @@ -40,18 +40,17 @@ 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 Template $template, + 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 diff --git a/src/Controllers/Operations/ViewController.php b/src/Controllers/Operations/ViewController.php index 850f20e183..e8000d61ef 100644 --- a/src/Controllers/Operations/ViewController.php +++ b/src/Controllers/Operations/ViewController.php @@ -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; @@ -28,15 +28,14 @@ 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 Template $template, + private readonly DatabaseInterface $dbi, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/PhpInfoController.php b/src/Controllers/PhpInfoController.php index 9fc3e3639d..c34ea473c5 100644 --- a/src/Controllers/PhpInfoController.php +++ b/src/Controllers/PhpInfoController.php @@ -10,6 +10,8 @@ namespace PhpMyAdmin\Controllers; use PhpMyAdmin\Config; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\ResponseRenderer; +use PhpMyAdmin\Template; use function phpinfo; @@ -20,8 +22,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, private readonly Template $template) + { + } + public function __invoke(ServerRequest $request): Response|null { $this->response->disable(); diff --git a/src/Controllers/Preferences/ExportController.php b/src/Controllers/Preferences/ExportController.php index 31d63d7210..c9b931ffc2 100644 --- a/src/Controllers/Preferences/ExportController.php +++ b/src/Controllers/Preferences/ExportController.php @@ -8,7 +8,7 @@ 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; @@ -23,17 +23,16 @@ 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 Template $template, + 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 diff --git a/src/Controllers/Preferences/FeaturesController.php b/src/Controllers/Preferences/FeaturesController.php index 4851715bc5..22872843fc 100644 --- a/src/Controllers/Preferences/FeaturesController.php +++ b/src/Controllers/Preferences/FeaturesController.php @@ -8,7 +8,7 @@ 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; @@ -23,17 +23,16 @@ 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 Template $template, + 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 diff --git a/src/Controllers/Preferences/ImportController.php b/src/Controllers/Preferences/ImportController.php index 0645c5f3f0..a3773ec95e 100644 --- a/src/Controllers/Preferences/ImportController.php +++ b/src/Controllers/Preferences/ImportController.php @@ -8,7 +8,7 @@ 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; @@ -23,17 +23,16 @@ 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 Template $template, + 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 diff --git a/src/Controllers/Preferences/MainPanelController.php b/src/Controllers/Preferences/MainPanelController.php index 0603b79f0d..e633f3d862 100644 --- a/src/Controllers/Preferences/MainPanelController.php +++ b/src/Controllers/Preferences/MainPanelController.php @@ -8,7 +8,7 @@ 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; @@ -23,17 +23,16 @@ 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 Template $template, + 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 diff --git a/src/Controllers/Preferences/ManageController.php b/src/Controllers/Preferences/ManageController.php index d0b5b71444..4cf403e828 100644 --- a/src/Controllers/Preferences/ManageController.php +++ b/src/Controllers/Preferences/ManageController.php @@ -8,7 +8,7 @@ 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; @@ -44,17 +44,16 @@ 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 Template $template, + 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 diff --git a/src/Controllers/Preferences/NavigationController.php b/src/Controllers/Preferences/NavigationController.php index 9707ad4241..64ff1f2ee3 100644 --- a/src/Controllers/Preferences/NavigationController.php +++ b/src/Controllers/Preferences/NavigationController.php @@ -8,7 +8,7 @@ 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; @@ -23,17 +23,16 @@ 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 Template $template, + 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 diff --git a/src/Controllers/Preferences/SqlController.php b/src/Controllers/Preferences/SqlController.php index b59f97da06..eb247f4af6 100644 --- a/src/Controllers/Preferences/SqlController.php +++ b/src/Controllers/Preferences/SqlController.php @@ -8,7 +8,7 @@ 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; @@ -23,17 +23,16 @@ 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 Template $template, + 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 diff --git a/src/Controllers/Preferences/TwoFactorController.php b/src/Controllers/Preferences/TwoFactorController.php index 6752fbd9f6..34e065c795 100644 --- a/src/Controllers/Preferences/TwoFactorController.php +++ b/src/Controllers/Preferences/TwoFactorController.php @@ -6,7 +6,7 @@ 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; @@ -18,11 +18,13 @@ 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) - { - parent::__construct($response, $template); + public function __construct( + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Relation $relation, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/RecentTablesListController.php b/src/Controllers/RecentTablesListController.php index b80c4e2d77..ee664691d6 100644 --- a/src/Controllers/RecentTablesListController.php +++ b/src/Controllers/RecentTablesListController.php @@ -8,9 +8,15 @@ use PhpMyAdmin\Favorites\RecentFavoriteTables; use PhpMyAdmin\Favorites\TableType; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\ResponseRenderer; +use PhpMyAdmin\Template; -final class RecentTablesListController extends AbstractController +final class RecentTablesListController implements InvocableController { + public function __construct(private readonly ResponseRenderer $response, private readonly Template $template) + { + } + public function __invoke(ServerRequest $request): Response|null { if (! $request->isAjax()) { diff --git a/src/Controllers/SchemaExportController.php b/src/Controllers/SchemaExportController.php index f096093461..e9c8fda199 100644 --- a/src/Controllers/SchemaExportController.php +++ b/src/Controllers/SchemaExportController.php @@ -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) { } diff --git a/src/Controllers/Server/BinlogController.php b/src/Controllers/Server/BinlogController.php index 470ad0dba7..cf678c03ab 100644 --- a/src/Controllers/Server/BinlogController.php +++ b/src/Controllers/Server/BinlogController.php @@ -5,7 +5,7 @@ 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; @@ -21,7 +21,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 +30,11 @@ final class BinlogController extends AbstractController */ private array $binaryLogs; - 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, + ) { $this->binaryLogs = $this->dbi->fetchResult('SHOW MASTER LOGS', 'Log_name'); } diff --git a/src/Controllers/Server/CollationsController.php b/src/Controllers/Server/CollationsController.php index f499b18a24..7492e3af6e 100644 --- a/src/Controllers/Server/CollationsController.php +++ b/src/Controllers/Server/CollationsController.php @@ -8,7 +8,7 @@ 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; @@ -19,7 +19,7 @@ use PhpMyAdmin\Url; /** * Handles viewing character sets and collations */ -class CollationsController extends AbstractController +final class CollationsController implements InvocableController { /** @var array */ private array $charsets; @@ -32,14 +32,12 @@ class CollationsController extends AbstractController * @param array>|null $collations */ public function __construct( - ResponseRenderer $response, - Template $template, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + 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']); diff --git a/src/Controllers/Server/Databases/CreateController.php b/src/Controllers/Server/Databases/CreateController.php index 2d0095ade0..a6ba8c761a 100644 --- a/src/Controllers/Server/Databases/CreateController.php +++ b/src/Controllers/Server/Databases/CreateController.php @@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Server\Databases; use PhpMyAdmin\Charsets; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Html\Generator; @@ -25,11 +25,13 @@ use function is_string; use function mb_strtolower; use function str_contains; -final class CreateController extends AbstractController +final class CreateController 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 diff --git a/src/Controllers/Server/Databases/DestroyController.php b/src/Controllers/Server/Databases/DestroyController.php index 93bbaf9404..b0e09ea877 100644 --- a/src/Controllers/Server/Databases/DestroyController.php +++ b/src/Controllers/Server/Databases/DestroyController.php @@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Server\Databases; use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\RelationCleanup; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -23,17 +23,16 @@ use function _ngettext; use function count; use function is_array; -final class DestroyController extends AbstractController +final class DestroyController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private DatabaseInterface $dbi, - private Transformations $transformations, - private RelationCleanup $relationCleanup, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, + private readonly Transformations $transformations, + private readonly RelationCleanup $relationCleanup, private readonly UserPrivilegesFactory $userPrivilegesFactory, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Server/DatabasesController.php b/src/Controllers/Server/DatabasesController.php index c44f688467..5f825cdf7b 100644 --- a/src/Controllers/Server/DatabasesController.php +++ b/src/Controllers/Server/DatabasesController.php @@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Server; use PhpMyAdmin\Charsets; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Dbal\ConnectionType; @@ -32,7 +32,7 @@ use function strtolower; /** * Handles viewing and creating and deleting databases */ -class DatabasesController extends AbstractController +final class DatabasesController implements InvocableController { /** @var mixed[] array of database details */ private array $databases = []; @@ -61,12 +61,11 @@ class DatabasesController extends AbstractController ]; public function __construct( - ResponseRenderer $response, - Template $template, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, private readonly UserPrivilegesFactory $userPrivilegesFactory, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Server/EnginesController.php b/src/Controllers/Server/EnginesController.php index cded067925..a978af1acd 100644 --- a/src/Controllers/Server/EnginesController.php +++ b/src/Controllers/Server/EnginesController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -16,11 +16,13 @@ use PhpMyAdmin\Url; /** * Handles viewing storage engine details */ -class EnginesController extends AbstractController +final class EnginesController 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 diff --git a/src/Controllers/Server/ExportController.php b/src/Controllers/Server/ExportController.php index 33d24cfcda..961b83728b 100644 --- a/src/Controllers/Server/ExportController.php +++ b/src/Controllers/Server/ExportController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server; use PhpMyAdmin\Config\PageSettings; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Export\Options; @@ -20,16 +20,15 @@ use PhpMyAdmin\Url; use function __; use function array_merge; -final class ExportController extends AbstractController +final class ExportController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Options $export, - private DatabaseInterface $dbi, - private PageSettings $pageSettings, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Options $export, + private readonly DatabaseInterface $dbi, + private readonly PageSettings $pageSettings, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Server/ImportController.php b/src/Controllers/Server/ImportController.php index 2b5ea26201..25d3103516 100644 --- a/src/Controllers/Server/ImportController.php +++ b/src/Controllers/Server/ImportController.php @@ -7,7 +7,7 @@ namespace PhpMyAdmin\Controllers\Server; 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\Encoding; @@ -27,15 +27,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 Template $template, + private readonly DatabaseInterface $dbi, + private readonly PageSettings $pageSettings, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Server/PluginsController.php b/src/Controllers/Server/PluginsController.php index 61b7297a03..3006e3400f 100644 --- a/src/Controllers/Server/PluginsController.php +++ b/src/Controllers/Server/PluginsController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -21,15 +21,14 @@ use function preg_replace; /** * Handles viewing server plugin details */ -class PluginsController extends AbstractController +final class PluginsController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Plugins $plugins, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Plugins $plugins, + private readonly DatabaseInterface $dbi, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Server/Privileges/AccountLockController.php b/src/Controllers/Server/Privileges/AccountLockController.php index 81ec452757..905128df09 100644 --- a/src/Controllers/Server/Privileges/AccountLockController.php +++ b/src/Controllers/Server/Privileges/AccountLockController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Privileges; use Fig\Http\Message\StatusCodeInterface; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Message; @@ -16,11 +16,13 @@ use Throwable; use function __; -final class AccountLockController extends AbstractController +final class AccountLockController implements InvocableController { - public function __construct(ResponseRenderer $response, Template $template, private AccountLocking $accountLocking) - { - parent::__construct($response, $template); + public function __construct( + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly AccountLocking $accountLocking, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Server/Privileges/AccountUnlockController.php b/src/Controllers/Server/Privileges/AccountUnlockController.php index bad69bf071..a7bad3e3c0 100644 --- a/src/Controllers/Server/Privileges/AccountUnlockController.php +++ b/src/Controllers/Server/Privileges/AccountUnlockController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Privileges; use Fig\Http\Message\StatusCodeInterface; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Message; @@ -16,11 +16,13 @@ use Throwable; use function __; -final class AccountUnlockController extends AbstractController +final class AccountUnlockController implements InvocableController { - public function __construct(ResponseRenderer $response, Template $template, private AccountLocking $accountLocking) - { - parent::__construct($response, $template); + public function __construct( + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly AccountLocking $accountLocking, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Server/PrivilegesController.php b/src/Controllers/Server/PrivilegesController.php index a481865df2..fa3fd4b107 100644 --- a/src/Controllers/Server/PrivilegesController.php +++ b/src/Controllers/Server/PrivilegesController.php @@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Server; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\ConfigStorage\RelationCleanup; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; @@ -31,16 +31,15 @@ use function urlencode; /** * Server privileges and users manipulations. */ -class PrivilegesController extends AbstractController +final class PrivilegesController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Relation $relation, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Relation $relation, + private readonly DatabaseInterface $dbi, private readonly UserPrivilegesFactory $userPrivilegesFactory, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Server/ReplicationController.php b/src/Controllers/Server/ReplicationController.php index a48e0ecf7a..76b99053c8 100644 --- a/src/Controllers/Server/ReplicationController.php +++ b/src/Controllers/Server/ReplicationController.php @@ -7,7 +7,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -22,15 +22,14 @@ use function is_array; /** * Server replications */ -class ReplicationController extends AbstractController +final class ReplicationController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private ReplicationGui $replicationGui, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly ReplicationGui $replicationGui, + private readonly DatabaseInterface $dbi, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Server/ShowEngineController.php b/src/Controllers/Server/ShowEngineController.php index d54abff6c0..46b032b934 100644 --- a/src/Controllers/Server/ShowEngineController.php +++ b/src/Controllers/Server/ShowEngineController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -19,14 +19,16 @@ use function is_string; /** * Displays details about a given Storage Engine. */ -final class ShowEngineController extends AbstractController +final class ShowEngineController implements InvocableController { private string $engine = ''; private string $page = ''; - 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 diff --git a/src/Controllers/Server/SqlController.php b/src/Controllers/Server/SqlController.php index 3970603649..5a6ac36349 100644 --- a/src/Controllers/Server/SqlController.php +++ b/src/Controllers/Server/SqlController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server; use PhpMyAdmin\Config\PageSettings; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -17,16 +17,15 @@ use PhpMyAdmin\Url; /** * Server SQL executor */ -class SqlController extends AbstractController +final class SqlController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private SqlQueryForm $sqlQueryForm, - private DatabaseInterface $dbi, - private PageSettings $pageSettings, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly SqlQueryForm $sqlQueryForm, + private readonly DatabaseInterface $dbi, + private readonly PageSettings $pageSettings, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Server/Status/AbstractController.php b/src/Controllers/Server/Status/AbstractController.php index cce27c8514..4835d302b7 100644 --- a/src/Controllers/Server/Status/AbstractController.php +++ b/src/Controllers/Server/Status/AbstractController.php @@ -4,15 +4,16 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Status; -use PhpMyAdmin\Controllers\AbstractController as Controller; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Server\Status\Data; use PhpMyAdmin\Template; -abstract class AbstractController extends Controller +abstract class AbstractController { - public function __construct(ResponseRenderer $response, Template $template, protected Data $data) - { - parent::__construct($response, $template); + public function __construct( + protected readonly ResponseRenderer $response, + protected readonly Template $template, + protected readonly Data $data, + ) { } } diff --git a/src/Controllers/Server/Status/AdvisorController.php b/src/Controllers/Server/Status/AdvisorController.php index 1ddfdbd7d5..7970bdbece 100644 --- a/src/Controllers/Server/Status/AdvisorController.php +++ b/src/Controllers/Server/Status/AdvisorController.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Status; use PhpMyAdmin\Advisory\Advisor; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\ResponseRenderer; @@ -14,10 +15,14 @@ use PhpMyAdmin\Template; /** * Displays the advisor feature */ -class AdvisorController extends AbstractController +final class AdvisorController extends AbstractController implements InvocableController { - public function __construct(ResponseRenderer $response, Template $template, Data $data, private Advisor $advisor) - { + public function __construct( + ResponseRenderer $response, + Template $template, + Data $data, + private readonly Advisor $advisor, + ) { parent::__construct($response, $template, $data); } diff --git a/src/Controllers/Server/Status/Monitor/ChartingDataController.php b/src/Controllers/Server/Status/Monitor/ChartingDataController.php index fc09638ef1..42ce3d7107 100644 --- a/src/Controllers/Server/Status/Monitor/ChartingDataController.php +++ b/src/Controllers/Server/Status/Monitor/ChartingDataController.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Status\Monitor; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Server\Status\AbstractController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; @@ -14,14 +15,14 @@ use PhpMyAdmin\Server\Status\Monitor; use PhpMyAdmin\Template; use PhpMyAdmin\Url; -final class ChartingDataController extends AbstractController +final class ChartingDataController extends AbstractController implements InvocableController { public function __construct( ResponseRenderer $response, Template $template, Data $data, - private Monitor $monitor, - private DatabaseInterface $dbi, + private readonly Monitor $monitor, + private readonly DatabaseInterface $dbi, ) { parent::__construct($response, $template, $data); } diff --git a/src/Controllers/Server/Status/Monitor/GeneralLogController.php b/src/Controllers/Server/Status/Monitor/GeneralLogController.php index 867cc4980a..9d294c4030 100644 --- a/src/Controllers/Server/Status/Monitor/GeneralLogController.php +++ b/src/Controllers/Server/Status/Monitor/GeneralLogController.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Status\Monitor; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Server\Status\AbstractController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; @@ -14,14 +15,14 @@ use PhpMyAdmin\Server\Status\Monitor; use PhpMyAdmin\Template; use PhpMyAdmin\Url; -final class GeneralLogController extends AbstractController +final class GeneralLogController extends AbstractController implements InvocableController { public function __construct( ResponseRenderer $response, Template $template, Data $data, - private Monitor $monitor, - private DatabaseInterface $dbi, + private readonly Monitor $monitor, + private readonly DatabaseInterface $dbi, ) { parent::__construct($response, $template, $data); } diff --git a/src/Controllers/Server/Status/Monitor/LogVarsController.php b/src/Controllers/Server/Status/Monitor/LogVarsController.php index 4df5e4fa2e..06dfbbd612 100644 --- a/src/Controllers/Server/Status/Monitor/LogVarsController.php +++ b/src/Controllers/Server/Status/Monitor/LogVarsController.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Status\Monitor; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Server\Status\AbstractController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; @@ -14,14 +15,14 @@ use PhpMyAdmin\Server\Status\Monitor; use PhpMyAdmin\Template; use PhpMyAdmin\Url; -final class LogVarsController extends AbstractController +final class LogVarsController extends AbstractController implements InvocableController { public function __construct( ResponseRenderer $response, Template $template, Data $data, - private Monitor $monitor, - private DatabaseInterface $dbi, + private readonly Monitor $monitor, + private readonly DatabaseInterface $dbi, ) { parent::__construct($response, $template, $data); } diff --git a/src/Controllers/Server/Status/Monitor/QueryAnalyzerController.php b/src/Controllers/Server/Status/Monitor/QueryAnalyzerController.php index 843e3b2ac7..0b2fac9494 100644 --- a/src/Controllers/Server/Status/Monitor/QueryAnalyzerController.php +++ b/src/Controllers/Server/Status/Monitor/QueryAnalyzerController.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Status\Monitor; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Server\Status\AbstractController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; @@ -14,14 +15,14 @@ use PhpMyAdmin\Server\Status\Monitor; use PhpMyAdmin\Template; use PhpMyAdmin\Url; -final class QueryAnalyzerController extends AbstractController +final class QueryAnalyzerController extends AbstractController implements InvocableController { public function __construct( ResponseRenderer $response, Template $template, Data $data, - private Monitor $monitor, - private DatabaseInterface $dbi, + private readonly Monitor $monitor, + private readonly DatabaseInterface $dbi, ) { parent::__construct($response, $template, $data); } diff --git a/src/Controllers/Server/Status/Monitor/SlowLogController.php b/src/Controllers/Server/Status/Monitor/SlowLogController.php index be04507deb..703330ea62 100644 --- a/src/Controllers/Server/Status/Monitor/SlowLogController.php +++ b/src/Controllers/Server/Status/Monitor/SlowLogController.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Status\Monitor; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Server\Status\AbstractController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; @@ -14,14 +15,14 @@ use PhpMyAdmin\Server\Status\Monitor; use PhpMyAdmin\Template; use PhpMyAdmin\Url; -final class SlowLogController extends AbstractController +final class SlowLogController extends AbstractController implements InvocableController { public function __construct( ResponseRenderer $response, Template $template, Data $data, - private Monitor $monitor, - private DatabaseInterface $dbi, + private readonly Monitor $monitor, + private readonly DatabaseInterface $dbi, ) { parent::__construct($response, $template, $data); } diff --git a/src/Controllers/Server/Status/MonitorController.php b/src/Controllers/Server/Status/MonitorController.php index b259f56bab..dc06d0fbce 100644 --- a/src/Controllers/Server/Status/MonitorController.php +++ b/src/Controllers/Server/Status/MonitorController.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Status; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -16,13 +17,13 @@ use PhpMyAdmin\Url; use function is_numeric; use function microtime; -class MonitorController extends AbstractController +final class MonitorController extends AbstractController implements InvocableController { public function __construct( ResponseRenderer $response, Template $template, Data $data, - private DatabaseInterface $dbi, + private readonly DatabaseInterface $dbi, ) { parent::__construct($response, $template, $data); } diff --git a/src/Controllers/Server/Status/Processes/KillController.php b/src/Controllers/Server/Status/Processes/KillController.php index ee50dae48b..490d85b91b 100644 --- a/src/Controllers/Server/Status/Processes/KillController.php +++ b/src/Controllers/Server/Status/Processes/KillController.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Status\Processes; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Server\Status\AbstractController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; @@ -17,13 +18,13 @@ use function __; use function is_array; use function is_numeric; -final class KillController extends AbstractController +final class KillController extends AbstractController implements InvocableController { public function __construct( ResponseRenderer $response, Template $template, Data $data, - private DatabaseInterface $dbi, + private readonly DatabaseInterface $dbi, ) { parent::__construct($response, $template, $data); } diff --git a/src/Controllers/Server/Status/Processes/RefreshController.php b/src/Controllers/Server/Status/Processes/RefreshController.php index 1fa658bd16..27401f9b66 100644 --- a/src/Controllers/Server/Status/Processes/RefreshController.php +++ b/src/Controllers/Server/Status/Processes/RefreshController.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Status\Processes; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Server\Status\AbstractController; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -12,13 +13,13 @@ use PhpMyAdmin\Server\Status\Data; use PhpMyAdmin\Server\Status\Processes; use PhpMyAdmin\Template; -final class RefreshController extends AbstractController +final class RefreshController extends AbstractController implements InvocableController { public function __construct( ResponseRenderer $response, Template $template, Data $data, - private Processes $processes, + private readonly Processes $processes, ) { parent::__construct($response, $template, $data); } diff --git a/src/Controllers/Server/Status/ProcessesController.php b/src/Controllers/Server/Status/ProcessesController.php index a20df0aabe..81b7f8b19f 100644 --- a/src/Controllers/Server/Status/ProcessesController.php +++ b/src/Controllers/Server/Status/ProcessesController.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Status; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -13,14 +14,14 @@ use PhpMyAdmin\Server\Status\Processes; use PhpMyAdmin\Template; use PhpMyAdmin\Url; -class ProcessesController extends AbstractController +final class ProcessesController extends AbstractController implements InvocableController { public function __construct( ResponseRenderer $response, Template $template, Data $data, - private DatabaseInterface $dbi, - private Processes $processes, + private readonly DatabaseInterface $dbi, + private readonly Processes $processes, ) { parent::__construct($response, $template, $data); } diff --git a/src/Controllers/Server/Status/QueriesController.php b/src/Controllers/Server/Status/QueriesController.php index 36c6a14ce3..83b3947322 100644 --- a/src/Controllers/Server/Status/QueriesController.php +++ b/src/Controllers/Server/Status/QueriesController.php @@ -7,6 +7,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Status; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -26,13 +27,13 @@ use function str_replace; use const MB_CASE_TITLE; -class QueriesController extends AbstractController +final class QueriesController extends AbstractController implements InvocableController { public function __construct( ResponseRenderer $response, Template $template, Data $data, - private DatabaseInterface $dbi, + private readonly DatabaseInterface $dbi, ) { parent::__construct($response, $template, $data); } diff --git a/src/Controllers/Server/Status/StatusController.php b/src/Controllers/Server/Status/StatusController.php index 745bd21f71..ce604b3aff 100644 --- a/src/Controllers/Server/Status/StatusController.php +++ b/src/Controllers/Server/Status/StatusController.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Status; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -20,14 +21,14 @@ use function implode; /** * Object the server status page: processes, connections and traffic. */ -class StatusController extends AbstractController +final class StatusController extends AbstractController implements InvocableController { public function __construct( ResponseRenderer $response, Template $template, Data $data, - private ReplicationGui $replicationGui, - private DatabaseInterface $dbi, + private readonly ReplicationGui $replicationGui, + private readonly DatabaseInterface $dbi, ) { parent::__construct($response, $template, $data); } diff --git a/src/Controllers/Server/Status/VariablesController.php b/src/Controllers/Server/Status/VariablesController.php index 7eb5b17bff..70801391d3 100644 --- a/src/Controllers/Server/Status/VariablesController.php +++ b/src/Controllers/Server/Status/VariablesController.php @@ -7,6 +7,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Status; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; @@ -21,13 +22,13 @@ use function in_array; use function is_numeric; use function str_contains; -class VariablesController extends AbstractController +final class VariablesController extends AbstractController implements InvocableController { public function __construct( ResponseRenderer $response, Template $template, Data $data, - private DatabaseInterface $dbi, + private readonly DatabaseInterface $dbi, ) { parent::__construct($response, $template, $data); } diff --git a/src/Controllers/Server/UserGroupsController.php b/src/Controllers/Server/UserGroupsController.php index 47d99b7226..1113b87eb5 100644 --- a/src/Controllers/Server/UserGroupsController.php +++ b/src/Controllers/Server/UserGroupsController.php @@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Server; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\ConfigStorage\UserGroups; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -20,15 +20,14 @@ use function is_string; /** * Displays the 'User groups' sub page under 'Users' page. */ -class UserGroupsController extends AbstractController +final class UserGroupsController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Relation $relation, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Relation $relation, + private readonly DatabaseInterface $dbi, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Server/UserGroupsFormController.php b/src/Controllers/Server/UserGroupsFormController.php index ca98c31848..5d661f3911 100644 --- a/src/Controllers/Server/UserGroupsFormController.php +++ b/src/Controllers/Server/UserGroupsFormController.php @@ -7,7 +7,7 @@ namespace PhpMyAdmin\Controllers\Server; use Fig\Http\Message\StatusCodeInterface; use PhpMyAdmin\ConfigStorage\Features\ConfigurableMenusFeature; use PhpMyAdmin\ConfigStorage\Relation; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Http\Response; @@ -19,15 +19,14 @@ use PhpMyAdmin\Util; use function __; use function sprintf; -final class UserGroupsFormController extends AbstractController +final class UserGroupsFormController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Relation $relation, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Relation $relation, + private readonly DatabaseInterface $dbi, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Server/Variables/GetVariableController.php b/src/Controllers/Server/Variables/GetVariableController.php index ddc5f460aa..41b17fd10a 100644 --- a/src/Controllers/Server/Variables/GetVariableController.php +++ b/src/Controllers/Server/Variables/GetVariableController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Variables; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -17,11 +17,13 @@ use function implode; use function is_array; use function is_string; -final class GetVariableController extends AbstractController +final class GetVariableController 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 diff --git a/src/Controllers/Server/Variables/SetVariableController.php b/src/Controllers/Server/Variables/SetVariableController.php index df9e2e1ed8..03558cc92e 100644 --- a/src/Controllers/Server/Variables/SetVariableController.php +++ b/src/Controllers/Server/Variables/SetVariableController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server\Variables; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -23,11 +23,13 @@ use function mb_strtolower; use function preg_match; use function trim; -final class SetVariableController extends AbstractController +final class SetVariableController 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, + ) { } /** diff --git a/src/Controllers/Server/VariablesController.php b/src/Controllers/Server/VariablesController.php index c8fbe49de1..3289b4f43b 100644 --- a/src/Controllers/Server/VariablesController.php +++ b/src/Controllers/Server/VariablesController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Server; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; @@ -25,11 +25,13 @@ use function trim; /** * Handles viewing and editing server variables */ -class VariablesController extends AbstractController +final class VariablesController 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 diff --git a/src/Controllers/Sql/ColumnPreferencesController.php b/src/Controllers/Sql/ColumnPreferencesController.php index 9c6ddc9a1f..402ce59b72 100644 --- a/src/Controllers/Sql/ColumnPreferencesController.php +++ b/src/Controllers/Sql/ColumnPreferencesController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Sql; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; @@ -19,14 +19,13 @@ use function explode; use function intval; use function is_string; -final class ColumnPreferencesController extends AbstractController +final class ColumnPreferencesController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Sql/DefaultForeignKeyCheckValueController.php b/src/Controllers/Sql/DefaultForeignKeyCheckValueController.php index 69ff9e8373..6a7e271bca 100644 --- a/src/Controllers/Sql/DefaultForeignKeyCheckValueController.php +++ b/src/Controllers/Sql/DefaultForeignKeyCheckValueController.php @@ -4,13 +4,19 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Sql; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\ResponseRenderer; +use PhpMyAdmin\Template; use PhpMyAdmin\Utils\ForeignKey; -final class DefaultForeignKeyCheckValueController extends AbstractController +final class DefaultForeignKeyCheckValueController implements InvocableController { + public function __construct(private readonly ResponseRenderer $response, private readonly Template $template) + { + } + public function __invoke(ServerRequest $request): Response|null { $this->response->addJSON('default_fk_check_value', ForeignKey::isCheckEnabled()); diff --git a/src/Controllers/Sql/EnumValuesController.php b/src/Controllers/Sql/EnumValuesController.php index ceff2327ae..b86cb58bb6 100644 --- a/src/Controllers/Sql/EnumValuesController.php +++ b/src/Controllers/Sql/EnumValuesController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Sql; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -14,14 +14,13 @@ use PhpMyAdmin\Template; use function __; -final class EnumValuesController extends AbstractController +final class EnumValuesController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Sql $sql, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Sql $sql, ) { - parent::__construct($response, $template); } /** diff --git a/src/Controllers/Sql/RelationalValuesController.php b/src/Controllers/Sql/RelationalValuesController.php index 1baaa891e9..25b8b356f0 100644 --- a/src/Controllers/Sql/RelationalValuesController.php +++ b/src/Controllers/Sql/RelationalValuesController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Sql; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -12,14 +12,13 @@ use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Sql; use PhpMyAdmin\Template; -final class RelationalValuesController extends AbstractController +final class RelationalValuesController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Sql $sql, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Sql $sql, ) { - parent::__construct($response, $template); } /** diff --git a/src/Controllers/Sql/SetValuesController.php b/src/Controllers/Sql/SetValuesController.php index d96b3df379..81005416f3 100644 --- a/src/Controllers/Sql/SetValuesController.php +++ b/src/Controllers/Sql/SetValuesController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Sql; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -15,14 +15,13 @@ use PhpMyAdmin\Template; use function __; use function explode; -final class SetValuesController extends AbstractController +final class SetValuesController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Sql $sql, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Sql $sql, ) { - parent::__construct($response, $template); } /** diff --git a/src/Controllers/Sql/SqlController.php b/src/Controllers/Sql/SqlController.php index 5e7aa9803f..8d23f7cc90 100644 --- a/src/Controllers/Sql/SqlController.php +++ b/src/Controllers/Sql/SqlController.php @@ -7,7 +7,7 @@ namespace PhpMyAdmin\Controllers\Sql; use PhpMyAdmin\Bookmarks\BookmarkRepository; use PhpMyAdmin\Config; use PhpMyAdmin\Config\PageSettings; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Core; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; @@ -27,17 +27,16 @@ use function mb_strpos; use function str_contains; use function urlencode; -class SqlController extends AbstractController +class SqlController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Sql $sql, - private DatabaseInterface $dbi, - private PageSettings $pageSettings, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Sql $sql, + private readonly DatabaseInterface $dbi, + private readonly PageSettings $pageSettings, private readonly BookmarkRepository $bookmarkRepository, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/AddFieldController.php b/src/Controllers/Table/AddFieldController.php index e7ec4b2024..5795ee28a2 100644 --- a/src/Controllers/Table/AddFieldController.php +++ b/src/Controllers/Table/AddFieldController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Core; use PhpMyAdmin\CreateAddField; use PhpMyAdmin\Current; @@ -34,19 +34,18 @@ use function strlen; /** * Displays add field form and handles it. */ -class AddFieldController extends AbstractController +final class AddFieldController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Transformations $transformations, - private Config $config, - private DatabaseInterface $dbi, - private ColumnsDefinition $columnsDefinition, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Transformations $transformations, + private readonly Config $config, + private readonly DatabaseInterface $dbi, + private readonly ColumnsDefinition $columnsDefinition, private readonly DbTableExists $dbTableExists, private readonly UserPrivilegesFactory $userPrivilegesFactory, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/ChangeController.php b/src/Controllers/Table/ChangeController.php index a3a2750f99..f532475884 100644 --- a/src/Controllers/Table/ChangeController.php +++ b/src/Controllers/Table/ChangeController.php @@ -7,7 +7,7 @@ namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Config; use PhpMyAdmin\Config\PageSettings; use PhpMyAdmin\ConfigStorage\Relation; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Core; use PhpMyAdmin\Current; use PhpMyAdmin\DbTableExists; @@ -36,18 +36,17 @@ use function trim; /** * Displays form for editing and inserting new table rows. */ -class ChangeController extends AbstractController +class ChangeController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private InsertEdit $insertEdit, - private Relation $relation, - private PageSettings $pageSettings, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly InsertEdit $insertEdit, + private readonly Relation $relation, + private readonly PageSettings $pageSettings, private readonly DbTableExists $dbTableExists, private readonly Config $config, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/ChangeRowsController.php b/src/Controllers/Table/ChangeRowsController.php index cca4a760ad..56146cf43e 100644 --- a/src/Controllers/Table/ChangeRowsController.php +++ b/src/Controllers/Table/ChangeRowsController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\ResponseRenderer; @@ -14,14 +14,13 @@ use function __; use function array_values; use function is_array; -final class ChangeRowsController extends AbstractController +final class ChangeRowsController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private ChangeController $changeController, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly ChangeController $changeController, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/ChartController.php b/src/Controllers/Table/ChartController.php index 7930e0f9e1..054c7b5907 100644 --- a/src/Controllers/Table/ChartController.php +++ b/src/Controllers/Table/ChartController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\DbTableExists; @@ -33,15 +33,14 @@ use function min; /** * Handles creation of the chart. */ -class ChartController extends AbstractController +final class ChartController 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 diff --git a/src/Controllers/Table/CreateController.php b/src/Controllers/Table/CreateController.php index 8cc8fc2450..94c704095d 100644 --- a/src/Controllers/Table/CreateController.php +++ b/src/Controllers/Table/CreateController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Core; use PhpMyAdmin\CreateAddField; use PhpMyAdmin\Current; @@ -31,18 +31,17 @@ use function strlen; /** * Displays table create form and handles it. */ -class CreateController extends AbstractController +final class CreateController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Transformations $transformations, - private Config $config, - private DatabaseInterface $dbi, - private ColumnsDefinition $columnsDefinition, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Transformations $transformations, + private readonly Config $config, + private readonly DatabaseInterface $dbi, + private readonly ColumnsDefinition $columnsDefinition, private readonly UserPrivilegesFactory $userPrivilegesFactory, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/DeleteConfirmController.php b/src/Controllers/Table/DeleteConfirmController.php index f6216e3ed3..13fa085112 100644 --- a/src/Controllers/Table/DeleteConfirmController.php +++ b/src/Controllers/Table/DeleteConfirmController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\DbTableExists; use PhpMyAdmin\Http\Response; @@ -22,14 +22,13 @@ use PhpMyAdmin\Utils\ForeignKey; use function __; use function is_array; -final class DeleteConfirmController extends AbstractController +final class DeleteConfirmController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, + private readonly ResponseRenderer $response, + private readonly Template $template, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/DeleteRowsController.php b/src/Controllers/Table/DeleteRowsController.php index 1fa40da652..01fec781f5 100644 --- a/src/Controllers/Table/DeleteRowsController.php +++ b/src/Controllers/Table/DeleteRowsController.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Bookmarks\BookmarkRepository; 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\Http\Response; @@ -23,14 +23,13 @@ use PhpMyAdmin\Utils\ForeignKey; use function __; use function sprintf; -final class DeleteRowsController extends AbstractController +final class DeleteRowsController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/DropColumnConfirmationController.php b/src/Controllers/Table/DropColumnConfirmationController.php index 142ad6ba2b..bb666cbf21 100644 --- a/src/Controllers/Table/DropColumnConfirmationController.php +++ b/src/Controllers/Table/DropColumnConfirmationController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; use Fig\Http\Message\StatusCodeInterface; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DbTableExists; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -20,14 +20,13 @@ use Webmozart\Assert\InvalidArgumentException; use function __; -final class DropColumnConfirmationController extends AbstractController +final class DropColumnConfirmationController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, + private readonly ResponseRenderer $response, + private readonly Template $template, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/DropColumnController.php b/src/Controllers/Table/DropColumnController.php index 012a36689d..65b9e3c09b 100644 --- a/src/Controllers/Table/DropColumnController.php +++ b/src/Controllers/Table/DropColumnController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\ConfigStorage\RelationCleanup; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\FlashMessages; @@ -20,16 +20,15 @@ use function __; use function _ngettext; use function count; -final class DropColumnController extends AbstractController +final class DropColumnController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private DatabaseInterface $dbi, - private FlashMessages $flash, - private RelationCleanup $relationCleanup, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, + private readonly FlashMessages $flash, + private readonly RelationCleanup $relationCleanup, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/ExportController.php b/src/Controllers/Table/ExportController.php index 2b15a48c0f..05ceca6483 100644 --- a/src/Controllers/Table/ExportController.php +++ b/src/Controllers/Table/ExportController.php @@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Config; use PhpMyAdmin\Config\PageSettings; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\Export\Options; use PhpMyAdmin\Http\Response; @@ -26,15 +26,14 @@ use function array_merge; use function implode; use function is_array; -class ExportController extends AbstractController +class ExportController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Options $export, - private PageSettings $pageSettings, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Options $export, + private readonly PageSettings $pageSettings, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/ExportRowsController.php b/src/Controllers/Table/ExportRowsController.php index aaa2884298..7d9a3a42e4 100644 --- a/src/Controllers/Table/ExportRowsController.php +++ b/src/Controllers/Table/ExportRowsController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\ResponseRenderer; @@ -14,14 +14,13 @@ use function __; use function array_values; use function is_array; -final class ExportRowsController extends AbstractController +final class ExportRowsController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private ExportController $exportController, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly ExportController $exportController, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/FindReplaceController.php b/src/Controllers/Table/FindReplaceController.php index c5a771c02b..1ac36db4f9 100644 --- a/src/Controllers/Table/FindReplaceController.php +++ b/src/Controllers/Table/FindReplaceController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\DbTableExists; @@ -35,7 +35,7 @@ use function strncasecmp; * * Displays find and replace form, allows previewing and do the replacing. */ -class FindReplaceController extends AbstractController +final class FindReplaceController implements InvocableController { /** @var mixed[] */ private array $columnNames = []; @@ -44,12 +44,11 @@ class FindReplaceController extends AbstractController private array $columnTypes = []; 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 diff --git a/src/Controllers/Table/GetFieldController.php b/src/Controllers/Table/GetFieldController.php index f9ec8d6ca2..1a521c8f18 100644 --- a/src/Controllers/Table/GetFieldController.php +++ b/src/Controllers/Table/GetFieldController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Core; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; @@ -26,14 +26,13 @@ use function sprintf; /** * Provides download to a given field defined in parameters. */ -class GetFieldController extends AbstractController +final class GetFieldController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/GisVisualizationController.php b/src/Controllers/Table/GisVisualizationController.php index b917fe0287..6b9be5223b 100644 --- a/src/Controllers/Table/GisVisualizationController.php +++ b/src/Controllers/Table/GisVisualizationController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Core; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; @@ -30,15 +30,14 @@ use function is_string; /** * Handles creation of the GIS visualizations. */ -final class GisVisualizationController extends AbstractController +final class GisVisualizationController 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 diff --git a/src/Controllers/Table/ImportController.php b/src/Controllers/Table/ImportController.php index db6ffdf3ad..931b71031c 100644 --- a/src/Controllers/Table/ImportController.php +++ b/src/Controllers/Table/ImportController.php @@ -7,7 +7,7 @@ namespace PhpMyAdmin\Controllers\Table; 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; @@ -30,16 +30,15 @@ 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 Template $template, + private readonly DatabaseInterface $dbi, + private readonly PageSettings $pageSettings, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/IndexRenameController.php b/src/Controllers/Table/IndexRenameController.php index 393da465ea..4e70b5a0df 100644 --- a/src/Controllers/Table/IndexRenameController.php +++ b/src/Controllers/Table/IndexRenameController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\DbTableExists; @@ -24,16 +24,15 @@ use PhpMyAdmin\Util; use function __; -final class IndexRenameController extends AbstractController +final class IndexRenameController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private DatabaseInterface $dbi, - private Indexes $indexes, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, + private readonly Indexes $indexes, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/IndexesController.php b/src/Controllers/Table/IndexesController.php index 17e4c87398..1e98e150e7 100644 --- a/src/Controllers/Table/IndexesController.php +++ b/src/Controllers/Table/IndexesController.php @@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Config; use PhpMyAdmin\Container\ContainerBuilder; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\DbTableExists; @@ -33,16 +33,15 @@ use function min; /** * Displays index edit/creation form and handles it. */ -class IndexesController extends AbstractController +final class IndexesController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private DatabaseInterface $dbi, - private Indexes $indexes, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, + private readonly Indexes $indexes, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Maintenance/AnalyzeController.php b/src/Controllers/Table/Maintenance/AnalyzeController.php index 18ebcc9643..ffac1831cd 100644 --- a/src/Controllers/Table/Maintenance/AnalyzeController.php +++ b/src/Controllers/Table/Maintenance/AnalyzeController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Maintenance; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -22,15 +22,14 @@ use Webmozart\Assert\InvalidArgumentException; use function __; use function count; -final class AnalyzeController extends AbstractController +final class AnalyzeController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Maintenance $model, - private Config $config, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Maintenance $model, + private readonly Config $config, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Maintenance/CheckController.php b/src/Controllers/Table/Maintenance/CheckController.php index c9c60843dd..a5a394f9a2 100644 --- a/src/Controllers/Table/Maintenance/CheckController.php +++ b/src/Controllers/Table/Maintenance/CheckController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Maintenance; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -22,15 +22,14 @@ use Webmozart\Assert\InvalidArgumentException; use function __; use function count; -final class CheckController extends AbstractController +final class CheckController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Maintenance $model, - private Config $config, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Maintenance $model, + private readonly Config $config, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Maintenance/ChecksumController.php b/src/Controllers/Table/Maintenance/ChecksumController.php index c9cef8ee56..a235d5080d 100644 --- a/src/Controllers/Table/Maintenance/ChecksumController.php +++ b/src/Controllers/Table/Maintenance/ChecksumController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Maintenance; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -22,15 +22,14 @@ use Webmozart\Assert\InvalidArgumentException; use function __; use function count; -final class ChecksumController extends AbstractController +final class ChecksumController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Maintenance $model, - private Config $config, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Maintenance $model, + private readonly Config $config, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Maintenance/OptimizeController.php b/src/Controllers/Table/Maintenance/OptimizeController.php index 3397f16652..dff58d9523 100644 --- a/src/Controllers/Table/Maintenance/OptimizeController.php +++ b/src/Controllers/Table/Maintenance/OptimizeController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Maintenance; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -22,15 +22,14 @@ use Webmozart\Assert\InvalidArgumentException; use function __; use function count; -final class OptimizeController extends AbstractController +final class OptimizeController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Maintenance $model, - private Config $config, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Maintenance $model, + private readonly Config $config, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Maintenance/RepairController.php b/src/Controllers/Table/Maintenance/RepairController.php index 5e15c7db8e..e7c02ce363 100644 --- a/src/Controllers/Table/Maintenance/RepairController.php +++ b/src/Controllers/Table/Maintenance/RepairController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Maintenance; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -22,15 +22,14 @@ use Webmozart\Assert\InvalidArgumentException; use function __; use function count; -final class RepairController extends AbstractController +final class RepairController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Maintenance $model, - private Config $config, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Maintenance $model, + private readonly Config $config, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Partition/AnalyzeController.php b/src/Controllers/Table/Partition/AnalyzeController.php index 51d92003eb..fa902b83c6 100644 --- a/src/Controllers/Table/Partition/AnalyzeController.php +++ b/src/Controllers/Table/Partition/AnalyzeController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Partition; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -20,14 +20,13 @@ use Webmozart\Assert\InvalidArgumentException; use function __; -final class AnalyzeController extends AbstractController +final class AnalyzeController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Maintenance $model, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Maintenance $model, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Partition/CheckController.php b/src/Controllers/Table/Partition/CheckController.php index 17d2c2299c..380ae8cc7e 100644 --- a/src/Controllers/Table/Partition/CheckController.php +++ b/src/Controllers/Table/Partition/CheckController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Partition; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -20,14 +20,13 @@ use Webmozart\Assert\InvalidArgumentException; use function __; -final class CheckController extends AbstractController +final class CheckController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Maintenance $model, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Maintenance $model, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Partition/DropController.php b/src/Controllers/Table/Partition/DropController.php index 5186de3ed3..5e773c41b8 100644 --- a/src/Controllers/Table/Partition/DropController.php +++ b/src/Controllers/Table/Partition/DropController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Partition; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -20,14 +20,13 @@ use Webmozart\Assert\InvalidArgumentException; use function __; -final class DropController extends AbstractController +final class DropController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Maintenance $model, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Maintenance $model, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Partition/OptimizeController.php b/src/Controllers/Table/Partition/OptimizeController.php index 1db07774d2..af1e784148 100644 --- a/src/Controllers/Table/Partition/OptimizeController.php +++ b/src/Controllers/Table/Partition/OptimizeController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Partition; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -20,14 +20,13 @@ use Webmozart\Assert\InvalidArgumentException; use function __; -final class OptimizeController extends AbstractController +final class OptimizeController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Maintenance $model, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Maintenance $model, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Partition/RebuildController.php b/src/Controllers/Table/Partition/RebuildController.php index 8d3af830ad..95f63cec30 100644 --- a/src/Controllers/Table/Partition/RebuildController.php +++ b/src/Controllers/Table/Partition/RebuildController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Partition; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -20,14 +20,13 @@ use Webmozart\Assert\InvalidArgumentException; use function __; -final class RebuildController extends AbstractController +final class RebuildController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Maintenance $model, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Maintenance $model, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Partition/RepairController.php b/src/Controllers/Table/Partition/RepairController.php index 443d4a03fd..b4e71a9f63 100644 --- a/src/Controllers/Table/Partition/RepairController.php +++ b/src/Controllers/Table/Partition/RepairController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Partition; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -20,14 +20,13 @@ use Webmozart\Assert\InvalidArgumentException; use function __; -final class RepairController extends AbstractController +final class RepairController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Maintenance $model, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Maintenance $model, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Partition/TruncateController.php b/src/Controllers/Table/Partition/TruncateController.php index c2224ed1ca..ba1236b27d 100644 --- a/src/Controllers/Table/Partition/TruncateController.php +++ b/src/Controllers/Table/Partition/TruncateController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Partition; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -20,14 +20,13 @@ use Webmozart\Assert\InvalidArgumentException; use function __; -final class TruncateController extends AbstractController +final class TruncateController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Maintenance $model, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Maintenance $model, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/PrivilegesController.php b/src/Controllers/Table/PrivilegesController.php index 3d1b70f310..fb3520234d 100644 --- a/src/Controllers/Table/PrivilegesController.php +++ b/src/Controllers/Table/PrivilegesController.php @@ -8,7 +8,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -28,15 +28,14 @@ use function mb_strtolower; /** * Controller for table 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 Template $template, + private readonly Privileges $privileges, + private readonly DatabaseInterface $dbi, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/RecentFavoriteController.php b/src/Controllers/Table/RecentFavoriteController.php index cd4b1ada2b..7cddf0303c 100644 --- a/src/Controllers/Table/RecentFavoriteController.php +++ b/src/Controllers/Table/RecentFavoriteController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Favorites\RecentFavoriteTable; use PhpMyAdmin\Favorites\RecentFavoriteTables; use PhpMyAdmin\Favorites\TableType; @@ -13,14 +13,20 @@ use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidIdentifier; use PhpMyAdmin\Identifiers\TableName; +use PhpMyAdmin\ResponseRenderer; +use PhpMyAdmin\Template; use function __; /** * Browse recent and favorite tables chosen from navigation. */ -final class RecentFavoriteController extends AbstractController +final class RecentFavoriteController implements InvocableController { + public function __construct(private readonly ResponseRenderer $response, private readonly Template $template) + { + } + public function __invoke(ServerRequest $request): Response|null { try { diff --git a/src/Controllers/Table/RelationController.php b/src/Controllers/Table/RelationController.php index 8bac879406..01212835f3 100644 --- a/src/Controllers/Table/RelationController.php +++ b/src/Controllers/Table/RelationController.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Features\DisplayFeature; use PhpMyAdmin\ConfigStorage\Features\RelationFeature; use PhpMyAdmin\ConfigStorage\Relation; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Core; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; @@ -37,15 +37,14 @@ use function usort; * * Includes phpMyAdmin relations and InnoDB relations. */ -final class RelationController extends AbstractController +final class RelationController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Relation $relation, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Relation $relation, + private readonly DatabaseInterface $dbi, ) { - parent::__construct($response, $template); } /** diff --git a/src/Controllers/Table/ReplaceController.php b/src/Controllers/Table/ReplaceController.php index 8d8270aafc..623eba8d9d 100644 --- a/src/Controllers/Table/ReplaceController.php +++ b/src/Controllers/Table/ReplaceController.php @@ -5,8 +5,8 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\ConfigStorage\Relation; -use PhpMyAdmin\Controllers\AbstractController; use PhpMyAdmin\Controllers\Database\SqlController as DatabaseSqlController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Sql\SqlController; use PhpMyAdmin\Controllers\Table\SqlController as TableSqlController; use PhpMyAdmin\Core; @@ -39,21 +39,20 @@ use function sprintf; /** * Manipulation of table data like inserting, replacing and updating. */ -final class ReplaceController extends AbstractController +final class ReplaceController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private InsertEdit $insertEdit, - private Transformations $transformations, - private Relation $relation, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly InsertEdit $insertEdit, + private readonly Transformations $transformations, + private readonly Relation $relation, + private readonly DatabaseInterface $dbi, private readonly SqlController $sqlController, private readonly DatabaseSqlController $databaseSqlController, private readonly ChangeController $changeController, private readonly TableSqlController $tableSqlController, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/SearchController.php b/src/Controllers/Table/SearchController.php index 25e3545947..c5ca1e41ec 100644 --- a/src/Controllers/Table/SearchController.php +++ b/src/Controllers/Table/SearchController.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Bookmarks\BookmarkRepository; 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; @@ -45,7 +45,7 @@ use function strtoupper; * Display table search form, create SQL query from form data * and call Sql::executeQueryAndSendQueryResponse() to execute it. */ -class SearchController extends AbstractController +final class SearchController implements InvocableController { /** * Names of columns @@ -89,14 +89,13 @@ class SearchController extends AbstractController private array $foreigners = []; public function __construct( - ResponseRenderer $response, - Template $template, - private Search $search, - private Relation $relation, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Search $search, + private readonly Relation $relation, + private readonly DatabaseInterface $dbi, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } /** diff --git a/src/Controllers/Table/SqlController.php b/src/Controllers/Table/SqlController.php index 5d743db4e6..4ab8eef503 100644 --- a/src/Controllers/Table/SqlController.php +++ b/src/Controllers/Table/SqlController.php @@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Table; 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; @@ -26,16 +26,15 @@ use function htmlspecialchars; /** * Table 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 Template $template, + private readonly SqlQueryForm $sqlQueryForm, + private readonly PageSettings $pageSettings, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Structure/AbstractIndexController.php b/src/Controllers/Table/Structure/AbstractIndexController.php index f986493e24..cdb61b431c 100644 --- a/src/Controllers/Table/Structure/AbstractIndexController.php +++ b/src/Controllers/Table/Structure/AbstractIndexController.php @@ -4,7 +4,6 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Structure; -use PhpMyAdmin\Controllers\AbstractController; use PhpMyAdmin\Controllers\Table\StructureController; use PhpMyAdmin\Current; use PhpMyAdmin\Http\ServerRequest; @@ -16,15 +15,14 @@ use PhpMyAdmin\Template; use function __; use function is_array; -abstract class AbstractIndexController extends AbstractController +abstract class AbstractIndexController { public function __construct( - ResponseRenderer $response, - Template $template, - protected StructureController $structureController, - protected Indexes $indexes, + protected readonly ResponseRenderer $response, + protected readonly Template $template, + protected readonly StructureController $structureController, + protected readonly Indexes $indexes, ) { - parent::__construct($response, $template); } public function handleIndexCreation(ServerRequest $request, string $indexType): void diff --git a/src/Controllers/Table/Structure/AddIndexController.php b/src/Controllers/Table/Structure/AddIndexController.php index 3504eafa01..134431579b 100644 --- a/src/Controllers/Table/Structure/AddIndexController.php +++ b/src/Controllers/Table/Structure/AddIndexController.php @@ -4,10 +4,11 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Structure; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; -final class AddIndexController extends AbstractIndexController +final class AddIndexController extends AbstractIndexController implements InvocableController { public function __invoke(ServerRequest $request): Response|null { diff --git a/src/Controllers/Table/Structure/AddKeyController.php b/src/Controllers/Table/Structure/AddKeyController.php index 0b9b95cdbf..84840addf2 100644 --- a/src/Controllers/Table/Structure/AddKeyController.php +++ b/src/Controllers/Table/Structure/AddKeyController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Structure; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Sql\SqlController; use PhpMyAdmin\Controllers\Table\StructureController; use PhpMyAdmin\Http\Response; @@ -12,15 +12,14 @@ use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Template; -final class AddKeyController extends AbstractController +final class AddKeyController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private SqlController $sqlController, - private StructureController $structureController, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly SqlController $sqlController, + private readonly StructureController $structureController, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Structure/BrowseController.php b/src/Controllers/Table/Structure/BrowseController.php index 070db1cc85..4d9d237b13 100644 --- a/src/Controllers/Table/Structure/BrowseController.php +++ b/src/Controllers/Table/Structure/BrowseController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Structure; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; @@ -18,11 +18,13 @@ use function __; use function implode; use function sprintf; -final class BrowseController extends AbstractController +final class BrowseController implements InvocableController { - public function __construct(ResponseRenderer $response, Template $template, private Sql $sql) - { - parent::__construct($response, $template); + public function __construct( + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Sql $sql, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Structure/CentralColumnsAddController.php b/src/Controllers/Table/Structure/CentralColumnsAddController.php index c282557d5a..00348bccb3 100644 --- a/src/Controllers/Table/Structure/CentralColumnsAddController.php +++ b/src/Controllers/Table/Structure/CentralColumnsAddController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Structure; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Table\StructureController; use PhpMyAdmin\Database\CentralColumns; use PhpMyAdmin\Http\Response; @@ -18,15 +18,14 @@ use Webmozart\Assert\Assert; use function __; use function is_array; -final class CentralColumnsAddController extends AbstractController +final class CentralColumnsAddController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private CentralColumns $centralColumns, - private StructureController $structureController, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly CentralColumns $centralColumns, + private readonly StructureController $structureController, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Structure/CentralColumnsRemoveController.php b/src/Controllers/Table/Structure/CentralColumnsRemoveController.php index c855506890..e486219ef3 100644 --- a/src/Controllers/Table/Structure/CentralColumnsRemoveController.php +++ b/src/Controllers/Table/Structure/CentralColumnsRemoveController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Structure; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Table\StructureController; use PhpMyAdmin\Current; use PhpMyAdmin\Database\CentralColumns; @@ -18,15 +18,14 @@ use Webmozart\Assert\Assert; use function __; use function is_array; -final class CentralColumnsRemoveController extends AbstractController +final class CentralColumnsRemoveController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private CentralColumns $centralColumns, - private StructureController $structureController, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly CentralColumns $centralColumns, + private readonly StructureController $structureController, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Structure/ChangeController.php b/src/Controllers/Table/Structure/ChangeController.php index ffd0df1fcf..b8fbac2c6a 100644 --- a/src/Controllers/Table/Structure/ChangeController.php +++ b/src/Controllers/Table/Structure/ChangeController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Structure; use PhpMyAdmin\ColumnFull; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; @@ -23,16 +23,15 @@ use function count; use function in_array; use function is_array; -final class ChangeController extends AbstractController +final class ChangeController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private DatabaseInterface $dbi, - private ColumnsDefinition $columnsDefinition, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, + private readonly ColumnsDefinition $columnsDefinition, private readonly UserPrivilegesFactory $userPrivilegesFactory, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Structure/FulltextController.php b/src/Controllers/Table/Structure/FulltextController.php index 55ef36904f..5502ec8ce1 100644 --- a/src/Controllers/Table/Structure/FulltextController.php +++ b/src/Controllers/Table/Structure/FulltextController.php @@ -4,10 +4,11 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Structure; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; -final class FulltextController extends AbstractIndexController +final class FulltextController extends AbstractIndexController implements InvocableController { public function __invoke(ServerRequest $request): Response|null { diff --git a/src/Controllers/Table/Structure/MoveColumnsController.php b/src/Controllers/Table/Structure/MoveColumnsController.php index a729830392..7e154f13b3 100644 --- a/src/Controllers/Table/Structure/MoveColumnsController.php +++ b/src/Controllers/Table/Structure/MoveColumnsController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Structure; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Response; @@ -27,17 +27,15 @@ use function mb_strtoupper; use function sprintf; use function str_replace; -final class MoveColumnsController extends AbstractController +final class MoveColumnsController implements InvocableController { private Table $tableObj; public function __construct( - ResponseRenderer $response, - Template $template, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, ) { - parent::__construct($response, $template); - $this->tableObj = $this->dbi->getTable(Current::$database, Current::$table); } diff --git a/src/Controllers/Table/Structure/PartitioningController.php b/src/Controllers/Table/Structure/PartitioningController.php index 183de9316b..712885f3d2 100644 --- a/src/Controllers/Table/Structure/PartitioningController.php +++ b/src/Controllers/Table/Structure/PartitioningController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Structure; use PhpMyAdmin\Config\PageSettings; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Table\StructureController; use PhpMyAdmin\CreateAddField; use PhpMyAdmin\Current; @@ -30,17 +30,16 @@ use function strrpos; use function substr; use function trim; -final class PartitioningController extends AbstractController +final class PartitioningController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private DatabaseInterface $dbi, - private CreateAddField $createAddField, - private StructureController $structureController, - private PageSettings $pageSettings, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, + private readonly CreateAddField $createAddField, + private readonly StructureController $structureController, + private readonly PageSettings $pageSettings, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Structure/PrimaryController.php b/src/Controllers/Table/Structure/PrimaryController.php index 804fe58dcd..075bd2ff36 100644 --- a/src/Controllers/Table/Structure/PrimaryController.php +++ b/src/Controllers/Table/Structure/PrimaryController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Structure; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Table\StructureController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; @@ -24,16 +24,15 @@ use function __; use function count; use function is_array; -final class PrimaryController extends AbstractController +final class PrimaryController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private DatabaseInterface $dbi, - private StructureController $structureController, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, + private readonly StructureController $structureController, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/Structure/ReservedWordCheckController.php b/src/Controllers/Table/Structure/ReservedWordCheckController.php index e3643fb297..cc07d9eb54 100644 --- a/src/Controllers/Table/Structure/ReservedWordCheckController.php +++ b/src/Controllers/Table/Structure/ReservedWordCheckController.php @@ -5,11 +5,13 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Structure; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\SqlParser\Context; +use PhpMyAdmin\Template; use function _ngettext; use function count; @@ -17,8 +19,12 @@ use function implode; use function sprintf; use function trim; -final class ReservedWordCheckController extends AbstractController +final class ReservedWordCheckController implements InvocableController { + public function __construct(private readonly ResponseRenderer $response, private readonly Template $template) + { + } + public function __invoke(ServerRequest $request): Response|null { if (Config::getInstance()->settings['ReservedWordDisableWarning'] !== false) { diff --git a/src/Controllers/Table/Structure/SaveController.php b/src/Controllers/Table/Structure/SaveController.php index 935065b68e..4363dc1822 100644 --- a/src/Controllers/Table/Structure/SaveController.php +++ b/src/Controllers/Table/Structure/SaveController.php @@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Table\Structure; use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Relation; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Table\StructureController; use PhpMyAdmin\Core; use PhpMyAdmin\Current; @@ -34,21 +34,19 @@ use function sprintf; use function str_contains; use function strlen; -final class SaveController extends AbstractController +final class SaveController implements InvocableController { private Table $tableObj; public function __construct( - ResponseRenderer $response, - Template $template, - private Relation $relation, - private Transformations $transformations, - private DatabaseInterface $dbi, - private StructureController $structureController, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Relation $relation, + private readonly Transformations $transformations, + private readonly DatabaseInterface $dbi, + private readonly StructureController $structureController, private readonly UserPrivilegesFactory $userPrivilegesFactory, ) { - parent::__construct($response, $template); - $this->tableObj = $this->dbi->getTable(Current::$database, Current::$table); } diff --git a/src/Controllers/Table/Structure/SpatialController.php b/src/Controllers/Table/Structure/SpatialController.php index 1ac8cc536a..78f0168dfb 100644 --- a/src/Controllers/Table/Structure/SpatialController.php +++ b/src/Controllers/Table/Structure/SpatialController.php @@ -4,10 +4,11 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Structure; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; -final class SpatialController extends AbstractIndexController +final class SpatialController extends AbstractIndexController implements InvocableController { public function __invoke(ServerRequest $request): Response|null { diff --git a/src/Controllers/Table/Structure/UniqueController.php b/src/Controllers/Table/Structure/UniqueController.php index bd19086941..76c9834e1b 100644 --- a/src/Controllers/Table/Structure/UniqueController.php +++ b/src/Controllers/Table/Structure/UniqueController.php @@ -4,10 +4,11 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Table\Structure; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; -final class UniqueController extends AbstractIndexController +final class UniqueController extends AbstractIndexController implements InvocableController { public function __invoke(ServerRequest $request): Response|null { diff --git a/src/Controllers/Table/StructureController.php b/src/Controllers/Table/StructureController.php index 4a9d4ee05f..3541f217c5 100644 --- a/src/Controllers/Table/StructureController.php +++ b/src/Controllers/Table/StructureController.php @@ -10,7 +10,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\Config\PageSettings; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\ConfigStorage\RelationParameters; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\Database\CentralColumns; use PhpMyAdmin\DatabaseInterface; @@ -46,21 +46,19 @@ use function strtotime; * Displays table structure infos like columns, indexes, size, rows * and allows manipulation of indexes and columns. */ -class StructureController extends AbstractController +class StructureController implements InvocableController { private readonly Table $tableObj; public function __construct( - ResponseRenderer $response, - Template $template, - private Relation $relation, - private Transformations $transformations, - private DatabaseInterface $dbi, - private PageSettings $pageSettings, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Relation $relation, + private readonly Transformations $transformations, + private readonly DatabaseInterface $dbi, + private readonly PageSettings $pageSettings, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); - $this->tableObj = $this->dbi->getTable(Current::$database, Current::$table); } diff --git a/src/Controllers/Table/TrackingController.php b/src/Controllers/Table/TrackingController.php index 83ff601db0..2677a8642a 100644 --- a/src/Controllers/Table/TrackingController.php +++ b/src/Controllers/Table/TrackingController.php @@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Table; use DateTimeImmutable; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Core; use PhpMyAdmin\Current; use PhpMyAdmin\DbTableExists; @@ -36,16 +36,15 @@ use function mb_strlen; use function sprintf; use function trim; -final class TrackingController extends AbstractController +final class TrackingController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Tracking $tracking, - private TrackingChecker $trackingChecker, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Tracking $tracking, + private readonly TrackingChecker $trackingChecker, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Table/ZoomSearchController.php b/src/Controllers/Table/ZoomSearchController.php index 7f67bb6391..90e4b12183 100644 --- a/src/Controllers/Table/ZoomSearchController.php +++ b/src/Controllers/Table/ZoomSearchController.php @@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Relation; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Core; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; @@ -46,7 +46,7 @@ use function strtoupper; * * Display table zoom search form, create SQL queries from form data. */ -class ZoomSearchController extends AbstractController +final class ZoomSearchController implements InvocableController { /** @var list */ private array $columnNames = []; @@ -70,14 +70,13 @@ class ZoomSearchController extends AbstractController private array $foreigners = []; public function __construct( - ResponseRenderer $response, - Template $template, - private Search $search, - private Relation $relation, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Search $search, + private readonly Relation $relation, + private readonly DatabaseInterface $dbi, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/TableController.php b/src/Controllers/TableController.php index 4508e9b75c..0c3e070e76 100644 --- a/src/Controllers/TableController.php +++ b/src/Controllers/TableController.php @@ -11,11 +11,13 @@ use PhpMyAdmin\Message; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Template; -final class TableController extends AbstractController +final class TableController 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 diff --git a/src/Controllers/ThemeSetController.php b/src/Controllers/ThemeSetController.php index 3ad648eaee..a3707cfa40 100644 --- a/src/Controllers/ThemeSetController.php +++ b/src/Controllers/ThemeSetController.php @@ -15,15 +15,14 @@ use PhpMyAdmin\UserPreferences; use function is_string; -final class ThemeSetController extends AbstractController +final class ThemeSetController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private ThemeManager $themeManager, - private UserPreferences $userPreferences, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly ThemeManager $themeManager, + private readonly UserPreferences $userPreferences, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/ThemesController.php b/src/Controllers/ThemesController.php index 6ef2b5abaf..64cf628ea1 100644 --- a/src/Controllers/ThemesController.php +++ b/src/Controllers/ThemesController.php @@ -10,11 +10,13 @@ use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Template; use PhpMyAdmin\Theme\ThemeManager; -class ThemesController extends AbstractController +final class ThemesController implements InvocableController { - public function __construct(ResponseRenderer $response, Template $template, private ThemeManager $themeManager) - { - parent::__construct($response, $template); + public function __construct( + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly ThemeManager $themeManager, + ) { } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Transformation/OverviewController.php b/src/Controllers/Transformation/OverviewController.php index 601adc2e22..62e9cdcb2a 100644 --- a/src/Controllers/Transformation/OverviewController.php +++ b/src/Controllers/Transformation/OverviewController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Transformation; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\ResponseRenderer; @@ -16,14 +16,13 @@ use function array_keys; /** * Lists available transformation plugins */ -class OverviewController extends AbstractController +final class OverviewController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Transformations $transformations, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Transformations $transformations, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Transformation/WrapperController.php b/src/Controllers/Transformation/WrapperController.php index 1cc333fcae..09f6347c46 100644 --- a/src/Controllers/Transformation/WrapperController.php +++ b/src/Controllers/Transformation/WrapperController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Transformation; use PhpMyAdmin\ConfigStorage\Relation; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\DbTableExists; @@ -35,17 +35,16 @@ use function strtolower; /** * Wrapper script for rendering transformations */ -class WrapperController extends AbstractController +final class WrapperController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private Transformations $transformations, - private Relation $relation, - private DatabaseInterface $dbi, - private DbTableExists $dbTableExists, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly Transformations $transformations, + private readonly Relation $relation, + private readonly DatabaseInterface $dbi, + private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/Triggers/IndexController.php b/src/Controllers/Triggers/IndexController.php index ad69b01b63..6430237661 100644 --- a/src/Controllers/Triggers/IndexController.php +++ b/src/Controllers/Triggers/IndexController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers\Triggers; use PhpMyAdmin\Config; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\DbTableExists; @@ -33,16 +33,15 @@ use function trim; /** * Triggers management. */ -final class IndexController extends AbstractController +final class IndexController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private DatabaseInterface $dbi, - private Triggers $triggers, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly DatabaseInterface $dbi, + private readonly Triggers $triggers, private readonly DbTableExists $dbTableExists, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/UserPasswordController.php b/src/Controllers/UserPasswordController.php index 4ac0bd21a7..9e133f2483 100644 --- a/src/Controllers/UserPasswordController.php +++ b/src/Controllers/UserPasswordController.php @@ -19,15 +19,14 @@ use function __; /** * Displays and handles the form where the user can change their password. */ -class UserPasswordController extends AbstractController +final class UserPasswordController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private UserPassword $userPassword, - private DatabaseInterface $dbi, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly UserPassword $userPassword, + private readonly DatabaseInterface $dbi, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/VersionCheckController.php b/src/Controllers/VersionCheckController.php index 12232fad5f..acb068ecf6 100644 --- a/src/Controllers/VersionCheckController.php +++ b/src/Controllers/VersionCheckController.php @@ -18,14 +18,13 @@ use function sprintf; /** * A caching proxy for retrieving version information from https://www.phpmyadmin.net/. */ -class VersionCheckController extends AbstractController +final class VersionCheckController implements InvocableController { public function __construct( - ResponseRenderer $response, - Template $template, - private VersionInformation $versionInformation, + private readonly ResponseRenderer $response, + private readonly Template $template, + private readonly VersionInformation $versionInformation, ) { - parent::__construct($response, $template); } public function __invoke(ServerRequest $request): Response|null diff --git a/src/Controllers/View/CreateController.php b/src/Controllers/View/CreateController.php index a9f1b2b354..7f5ceb7a30 100644 --- a/src/Controllers/View/CreateController.php +++ b/src/Controllers/View/CreateController.php @@ -6,7 +6,7 @@ namespace PhpMyAdmin\Controllers\View; use PhpMyAdmin\Config; use PhpMyAdmin\Container\ContainerBuilder; -use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Controllers\InvocableController; use PhpMyAdmin\Controllers\Table\StructureController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; @@ -38,7 +38,7 @@ use function substr; /** * Handles creation of VIEWs. */ -class CreateController extends AbstractController +final class CreateController implements InvocableController { /** @todo Move the whole view rebuilding logic to SQL parser */ private const VIEW_SECURITY_OPTIONS = ['DEFINER', 'INVOKER']; @@ -48,12 +48,11 @@ class CreateController extends AbstractController private const VIEW_WITH_OPTIONS = ['CASCADED', 'LOCAL']; 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