Skip to content

Commit

Permalink
Remove Controllers\Setup\AbstractController class
Browse files Browse the repository at this point in the history
Extracts AbstractController::getPages into SetupHelper class.

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
  • Loading branch information
MauricioFauth committed May 11, 2024
1 parent 52b3ef4 commit 32447c6
Show file tree
Hide file tree
Showing 9 changed files with 66 additions and 47 deletions.
37 changes: 0 additions & 37 deletions src/Controllers/Setup/AbstractController.php

This file was deleted.

9 changes: 7 additions & 2 deletions src/Controllers/Setup/ConfigController.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,19 @@
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Setup\ConfigGenerator;
use PhpMyAdmin\Setup\SetupHelper;
use PhpMyAdmin\Template;

use function is_string;

class ConfigController extends AbstractController
final class ConfigController
{
public function __construct(private readonly Template $template)
{
}

public function __invoke(ServerRequest $request): string
{
$pages = $this->getPages();
$pages = SetupHelper::getPages();

static $hasCheckPageRefresh = false;
if (! $hasCheckPageRefresh) {
Expand Down
9 changes: 7 additions & 2 deletions src/Controllers/Setup/FormController.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,22 @@
use PhpMyAdmin\LanguageManager;
use PhpMyAdmin\Setup\FormProcessing;
use PhpMyAdmin\Setup\SetupHelper;
use PhpMyAdmin\Template;

use function __;
use function is_string;
use function ob_get_clean;
use function ob_start;

class FormController extends AbstractController
final class FormController
{
public function __construct(private readonly Template $template)
{
}

public function __invoke(ServerRequest $request): string
{
$pages = $this->getPages();
$pages = SetupHelper::getPages();

$formSet = $this->getFormSetParam($request->getQueryParam('formset'));

Expand Down
9 changes: 7 additions & 2 deletions src/Controllers/Setup/HomeController.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,22 @@
use PhpMyAdmin\LanguageManager;
use PhpMyAdmin\Setup\Index;
use PhpMyAdmin\Setup\SetupHelper;
use PhpMyAdmin\Template;

use function __;
use function array_keys;
use function is_scalar;
use function is_string;

class HomeController extends AbstractController
final class HomeController
{
public function __construct(private readonly Template $template)
{
}

public function __invoke(ServerRequest $request): string
{
$pages = $this->getPages();
$pages = SetupHelper::getPages();

// message handling
Index::messagesBegin();
Expand Down
2 changes: 1 addition & 1 deletion src/Controllers/Setup/MainController.php
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public function __invoke(ServerRequest $request): Response

if ($page === 'servers') {
if ($request->getQueryParam('mode') === 'remove' && $request->isPost()) {
(new ServerDestroyController($this->template))($request);
(new ServerDestroyController())($request);
$response = $response->withStatus(StatusCodeInterface::STATUS_FOUND);

return $response->withHeader(
Expand Down
2 changes: 1 addition & 1 deletion src/Controllers/Setup/ServerDestroyController.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

use function is_numeric;

class ServerDestroyController extends AbstractController
final class ServerDestroyController
{
public function __invoke(ServerRequest $request): void
{
Expand Down
9 changes: 7 additions & 2 deletions src/Controllers/Setup/ServersController.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,28 @@
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Setup\FormProcessing;
use PhpMyAdmin\Setup\SetupHelper;
use PhpMyAdmin\Template;

use function in_array;
use function is_numeric;
use function is_string;
use function ob_get_clean;
use function ob_start;

class ServersController extends AbstractController
final class ServersController
{
public function __construct(private readonly Template $template)
{
}

public function __invoke(ServerRequest $request): string
{
$configFile = SetupHelper::createConfigFile();

$id = $this->getIdParam($request->getQueryParam('id'));
$mode = $this->getModeParam($request->getQueryParam('mode'));

$pages = $this->getPages();
$pages = SetupHelper::getPages();

$hasServer = $id >= 1 && $configFile->get('Servers/' . $id) !== null;

Expand Down
23 changes: 23 additions & 0 deletions src/Setup/SetupHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
namespace PhpMyAdmin\Setup;

use PhpMyAdmin\Config\ConfigFile;
use PhpMyAdmin\Config\Forms\BaseForm;
use PhpMyAdmin\Config\Forms\Setup\SetupFormList;

use function in_array;

final class SetupHelper
{
Expand All @@ -27,4 +31,23 @@ public static function createConfigFile(): ConfigFile

return $configFile;
}

/** @return string[][] */
public static function getPages(): array
{
$ignored = ['Config', 'Servers'];
$pages = [];
foreach (SetupFormList::getAllFormNames() as $formset) {
if (in_array($formset, $ignored, true)) {
continue;
}

/** @var BaseForm $formClass */
$formClass = SetupFormList::get($formset);

$pages[$formset] = ['name' => $formClass::getName(), 'formset' => $formset];
}

return $pages;
}
}
13 changes: 13 additions & 0 deletions tests/unit/Setup/SetupHelperTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,17 @@ public function testCreateConfigFile(): void
self::assertSame($expected, $configFile->getPersistKeysMap());
self::assertNotSame($configFile, SetupHelper::createConfigFile());
}

public function testGetPages(): void
{
$expected = [
'Export' => ['name' => 'Export', 'formset' => 'Export'],
'Features' => ['name' => 'Features', 'formset' => 'Features'],
'Import' => ['name' => 'Import', 'formset' => 'Import'],
'Main' => ['name' => 'Main panel', 'formset' => 'Main'],
'Navi' => ['name' => 'Navigation panel', 'formset' => 'Navi'],
'Sql' => ['name' => 'SQL queries', 'formset' => 'Sql'],
];
self::assertSame($expected, SetupHelper::getPages());
}
}

0 comments on commit 32447c6

Please sign in to comment.