diff options
author | Maurício Meneghini Fauth <mauricio@fauth.dev> | 2022-07-29 00:33:34 +0300 |
---|---|---|
committer | Maurício Meneghini Fauth <mauricio@fauth.dev> | 2022-07-29 00:33:34 +0300 |
commit | 398bdae484ae6fdb63b7ee04db788d31c358ff40 (patch) | |
tree | 8c1d956282f124fed70f51cc681a508e50f1973a /libraries | |
parent | 9c9ae5069e8bda601b8fe6eabd1f7b93b2810599 (diff) |
Extract normalization 1NF step 1 action
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
Diffstat (limited to 'libraries')
-rw-r--r-- | libraries/classes/Controllers/Normalization/FirstNormalForm/FirstStepController.php | 38 | ||||
-rw-r--r-- | libraries/classes/Controllers/NormalizationController.php | 13 | ||||
-rw-r--r-- | libraries/routes.php | 6 | ||||
-rw-r--r-- | libraries/services_controllers.php | 9 |
4 files changed, 52 insertions, 14 deletions
diff --git a/libraries/classes/Controllers/Normalization/FirstNormalForm/FirstStepController.php b/libraries/classes/Controllers/Normalization/FirstNormalForm/FirstStepController.php new file mode 100644 index 0000000000..025760d602 --- /dev/null +++ b/libraries/classes/Controllers/Normalization/FirstNormalForm/FirstStepController.php @@ -0,0 +1,38 @@ +<?php + +declare(strict_types=1); + +namespace PhpMyAdmin\Controllers\Normalization\FirstNormalForm; + +use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Normalization; +use PhpMyAdmin\ResponseRenderer; +use PhpMyAdmin\Template; + +use function in_array; + +final class FirstStepController extends AbstractController +{ + /** @var Normalization */ + private $normalization; + + public function __construct(ResponseRenderer $response, Template $template, Normalization $normalization) + { + parent::__construct($response, $template); + $this->normalization = $normalization; + } + + public function __invoke(ServerRequest $request): void + { + $this->addScriptFiles(['normalization.js', 'vendor/jquery/jquery.uitablefilter.js']); + + $normalForm = '1nf'; + if (isset($_POST['normalizeTo']) && in_array($_POST['normalizeTo'], ['1nf', '2nf', '3nf'])) { + $normalForm = $_POST['normalizeTo']; + } + + $html = $this->normalization->getHtmlFor1NFStep1($GLOBALS['db'], $GLOBALS['table'], $normalForm); + $this->response->addHTML($html); + } +} diff --git a/libraries/classes/Controllers/NormalizationController.php b/libraries/classes/Controllers/NormalizationController.php index 4f318806b4..859ff1610f 100644 --- a/libraries/classes/Controllers/NormalizationController.php +++ b/libraries/classes/Controllers/NormalizationController.php @@ -13,7 +13,6 @@ use PhpMyAdmin\Url; use function __; use function _pgettext; -use function in_array; use function intval; use function json_decode; use function json_encode; @@ -104,11 +103,6 @@ class NormalizationController extends AbstractController $this->addScriptFiles(['normalization.js', 'vendor/jquery/jquery.uitablefilter.js']); - $normalForm = '1nf'; - if (isset($_POST['normalizeTo']) && in_array($_POST['normalizeTo'], ['1nf', '2nf', '3nf'])) { - $normalForm = $_POST['normalizeTo']; - } - if (isset($_POST['createNewTables2NF'])) { $partialDependencies = json_decode($_POST['pd'], true); $tablesName = json_decode($_POST['newTablesName']); @@ -149,13 +143,6 @@ class NormalizationController extends AbstractController return; } - if (isset($_POST['step1'])) { - $html = $this->normalization->getHtmlFor1NFStep1($GLOBALS['db'], $GLOBALS['table'], $normalForm); - $this->response->addHTML($html); - - return; - } - if (isset($_POST['step2'])) { $res = $this->normalization->getHtmlContentsFor1NFStep2($GLOBALS['db'], $GLOBALS['table']); $this->response->addJSON($res); diff --git a/libraries/routes.php b/libraries/routes.php index 508c8deb63..27a509246f 100644 --- a/libraries/routes.php +++ b/libraries/routes.php @@ -21,6 +21,7 @@ use PhpMyAdmin\Controllers\LicenseController; use PhpMyAdmin\Controllers\LintController; use PhpMyAdmin\Controllers\LogoutController; use PhpMyAdmin\Controllers\NavigationController; +use PhpMyAdmin\Controllers\Normalization; use PhpMyAdmin\Controllers\NormalizationController; use PhpMyAdmin\Controllers\PhpInfoController; use PhpMyAdmin\Controllers\Preferences; @@ -129,7 +130,10 @@ return static function (RouteCollector $routes): void { $routes->addRoute(['GET', 'POST'], '/lint', LintController::class); $routes->addRoute(['GET', 'POST'], '/logout', LogoutController::class); $routes->addRoute(['GET', 'POST'], '/navigation', NavigationController::class); - $routes->addRoute(['GET', 'POST'], '/normalization', NormalizationController::class); + $routes->addGroup('/normalization', static function (RouteCollector $routes): void { + $routes->addRoute(['GET', 'POST'], '', NormalizationController::class); + $routes->post('/1nf/step1', Normalization\FirstNormalForm\FirstStepController::class); + }); $routes->get('/phpinfo', PhpInfoController::class); $routes->addGroup('/preferences', static function (RouteCollector $routes): void { $routes->addRoute(['GET', 'POST'], '/export', Preferences\ExportController::class); diff --git a/libraries/services_controllers.php b/libraries/services_controllers.php index d80d979aed..22aa34afb6 100644 --- a/libraries/services_controllers.php +++ b/libraries/services_controllers.php @@ -21,6 +21,7 @@ use PhpMyAdmin\Controllers\LicenseController; use PhpMyAdmin\Controllers\LintController; use PhpMyAdmin\Controllers\LogoutController; use PhpMyAdmin\Controllers\NavigationController; +use PhpMyAdmin\Controllers\Normalization; use PhpMyAdmin\Controllers\NormalizationController; use PhpMyAdmin\Controllers\PhpInfoController; use PhpMyAdmin\Controllers\Preferences; @@ -584,6 +585,14 @@ return [ '$relation' => '@relation', ], ], + Normalization\FirstNormalForm\FirstStepController::class => [ + 'class' => Normalization\FirstNormalForm\FirstStepController::class, + 'arguments' => [ + '$response' => '@response', + '$template' => '@template', + '$normalization' => '@normalization', + ], + ], NormalizationController::class => [ 'class' => NormalizationController::class, 'arguments' => [ |