diff options
author | Maurício Meneghini Fauth <mauricio@fauth.dev> | 2022-09-30 04:36:46 +0300 |
---|---|---|
committer | Maurício Meneghini Fauth <mauricio@fauth.dev> | 2022-09-30 04:36:46 +0300 |
commit | bb97ed988f8a34c414d29598fc808951cec7d981 (patch) | |
tree | bbdea68e11bec9533174287c1c386536f5f40f34 | |
parent | f54cc49f869945976179cae4daba77c2e05b177c (diff) |
Reduce usage of the containerBuilder global variable
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
-rw-r--r-- | index.php | 3 | ||||
-rw-r--r-- | libraries/classes/Common.php | 1 | ||||
-rw-r--r-- | libraries/classes/Controllers/Export/ExportController.php | 3 | ||||
-rw-r--r-- | libraries/classes/Controllers/Table/RecentFavoriteController.php | 5 | ||||
-rw-r--r-- | libraries/classes/Controllers/Table/ReplaceController.php | 13 | ||||
-rw-r--r-- | libraries/classes/Controllers/View/CreateController.php | 4 | ||||
-rw-r--r-- | libraries/classes/Core.php | 5 | ||||
-rw-r--r-- | libraries/classes/DbTableExists.php | 4 | ||||
-rw-r--r-- | libraries/classes/Export.php | 9 | ||||
-rw-r--r-- | libraries/classes/Plugins.php | 19 | ||||
-rw-r--r-- | libraries/classes/Table/Indexes.php | 5 | ||||
-rw-r--r-- | libraries/classes/UrlRedirector.php | 7 | ||||
-rw-r--r-- | test/classes/Controllers/Table/RecentFavoriteControllerTest.php | 6 | ||||
-rw-r--r-- | test/classes/Controllers/Table/ReplaceControllerTest.php | 6 |
14 files changed, 41 insertions, 49 deletions
@@ -3,6 +3,7 @@ declare(strict_types=1); use PhpMyAdmin\Common; +use PhpMyAdmin\Core; use PhpMyAdmin\Routing; if (! defined('ROOT_PATH')) { @@ -37,4 +38,4 @@ require AUTOLOAD_FILE; Common::run(); -Routing::callControllerForRoute(Common::getRequest(), Routing::getDispatcher(), $GLOBALS['containerBuilder']); +Routing::callControllerForRoute(Common::getRequest(), Routing::getDispatcher(), Core::getContainerBuilder()); diff --git a/libraries/classes/Common.php b/libraries/classes/Common.php index 0e5b1b58e1..097ce789ad 100644 --- a/libraries/classes/Common.php +++ b/libraries/classes/Common.php @@ -82,7 +82,6 @@ final class Common */ public static function run(): void { - $GLOBALS['containerBuilder'] = $GLOBALS['containerBuilder'] ?? null; $GLOBALS['server'] = $GLOBALS['server'] ?? null; $GLOBALS['lang'] = $GLOBALS['lang'] ?? null; $GLOBALS['isConfigLoading'] = $GLOBALS['isConfigLoading'] ?? null; diff --git a/libraries/classes/Controllers/Export/ExportController.php b/libraries/classes/Controllers/Export/ExportController.php index aa18144568..fe3241ecf7 100644 --- a/libraries/classes/Controllers/Export/ExportController.php +++ b/libraries/classes/Controllers/Export/ExportController.php @@ -48,7 +48,6 @@ final class ExportController extends AbstractController public function __invoke(ServerRequest $request): void { - $GLOBALS['containerBuilder'] = $GLOBALS['containerBuilder'] ?? null; $GLOBALS['export_type'] = $GLOBALS['export_type'] ?? null; $GLOBALS['filename_template'] = $GLOBALS['filename_template'] ?? null; $GLOBALS['errorUrl'] = $GLOBALS['errorUrl'] ?? null; @@ -335,7 +334,7 @@ final class ExportController extends AbstractController ); $GLOBALS['active_page'] = Url::getFromRoute('/database/export'); /** @var DatabaseExportController $controller */ - $controller = $GLOBALS['containerBuilder']->get(DatabaseExportController::class); + $controller = Core::getContainerBuilder()->get(DatabaseExportController::class); $controller($request); exit; } diff --git a/libraries/classes/Controllers/Table/RecentFavoriteController.php b/libraries/classes/Controllers/Table/RecentFavoriteController.php index 2d4770adb0..dd69a3e5d3 100644 --- a/libraries/classes/Controllers/Table/RecentFavoriteController.php +++ b/libraries/classes/Controllers/Table/RecentFavoriteController.php @@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Controllers\AbstractController; use PhpMyAdmin\Controllers\Sql\SqlController; +use PhpMyAdmin\Core; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\RecentFavoriteTable; @@ -18,8 +19,6 @@ class RecentFavoriteController extends AbstractController { public function __invoke(ServerRequest $request): void { - $GLOBALS['containerBuilder'] = $GLOBALS['containerBuilder'] ?? null; - $db = isset($_REQUEST['db']) && is_string($_REQUEST['db']) ? $_REQUEST['db'] : ''; $table = isset($_REQUEST['table']) && is_string($_REQUEST['table']) ? $_REQUEST['table'] : ''; @@ -27,7 +26,7 @@ class RecentFavoriteController extends AbstractController RecentFavoriteTable::getInstance('favorite')->removeIfInvalid($db, $table); /** @var SqlController $controller */ - $controller = $GLOBALS['containerBuilder']->get(SqlController::class); + $controller = Core::getContainerBuilder()->get(SqlController::class); $controller($request); } } diff --git a/libraries/classes/Controllers/Table/ReplaceController.php b/libraries/classes/Controllers/Table/ReplaceController.php index ed49fc32df..3ec9283d11 100644 --- a/libraries/classes/Controllers/Table/ReplaceController.php +++ b/libraries/classes/Controllers/Table/ReplaceController.php @@ -70,7 +70,6 @@ final class ReplaceController extends AbstractController public function __invoke(ServerRequest $request): void { - $GLOBALS['containerBuilder'] = $GLOBALS['containerBuilder'] ?? null; $GLOBALS['urlParams'] = $GLOBALS['urlParams'] ?? null; $GLOBALS['message'] = $GLOBALS['message'] ?? null; $this->checkParameters(['db', 'table', 'goto']); @@ -95,7 +94,7 @@ final class ReplaceController extends AbstractController ]); $GLOBALS['cfg']['InsertRows'] = $_POST['insert_rows']; /** @var ChangeController $controller */ - $controller = $GLOBALS['containerBuilder']->get(ChangeController::class); + $controller = Core::getContainerBuilder()->get(ChangeController::class); $controller($request); return; @@ -503,10 +502,10 @@ final class ReplaceController extends AbstractController private function moveBackToCallingScript(string $gotoInclude, ServerRequest $request): void { $GLOBALS['active_page'] = $gotoInclude; - + $container = Core::getContainerBuilder(); if ($gotoInclude === '/sql') { /** @var SqlController $controller */ - $controller = $GLOBALS['containerBuilder']->get(SqlController::class); + $controller = $container->get(SqlController::class); $controller($request); return; @@ -514,7 +513,7 @@ final class ReplaceController extends AbstractController if ($gotoInclude === '/database/sql') { /** @var DatabaseSqlController $controller */ - $controller = $GLOBALS['containerBuilder']->get(DatabaseSqlController::class); + $controller = $container->get(DatabaseSqlController::class); $controller($request); return; @@ -522,7 +521,7 @@ final class ReplaceController extends AbstractController if ($gotoInclude === '/table/change') { /** @var ChangeController $controller */ - $controller = $GLOBALS['containerBuilder']->get(ChangeController::class); + $controller = $container->get(ChangeController::class); $controller($request); return; @@ -530,7 +529,7 @@ final class ReplaceController extends AbstractController if ($gotoInclude === '/table/sql') { /** @var TableSqlController $controller */ - $controller = $GLOBALS['containerBuilder']->get(TableSqlController::class); + $controller = $container->get(TableSqlController::class); $controller($request); return; diff --git a/libraries/classes/Controllers/View/CreateController.php b/libraries/classes/Controllers/View/CreateController.php index 29160c747f..f984fb841a 100644 --- a/libraries/classes/Controllers/View/CreateController.php +++ b/libraries/classes/Controllers/View/CreateController.php @@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\View; use PhpMyAdmin\Controllers\AbstractController; use PhpMyAdmin\Controllers\Table\StructureController; +use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\ServerRequest; @@ -59,7 +60,6 @@ class CreateController extends AbstractController $GLOBALS['column_map'] = $GLOBALS['column_map'] ?? null; $GLOBALS['systemDb'] = $GLOBALS['systemDb'] ?? null; $GLOBALS['pma_transformation_data'] = $GLOBALS['pma_transformation_data'] ?? null; - $GLOBALS['containerBuilder'] = $GLOBALS['containerBuilder'] ?? null; $GLOBALS['new_transformations_sql'] = $GLOBALS['new_transformations_sql'] ?? null; $GLOBALS['view'] = $GLOBALS['view'] ?? null; $GLOBALS['item'] = $GLOBALS['item'] ?? null; @@ -204,7 +204,7 @@ class CreateController extends AbstractController if (! isset($_POST['ajax_dialog'])) { $GLOBALS['message'] = Message::success(); /** @var StructureController $controller */ - $controller = $GLOBALS['containerBuilder']->get(StructureController::class); + $controller = Core::getContainerBuilder()->get(StructureController::class); $controller($request); } else { $this->response->addJSON( diff --git a/libraries/classes/Core.php b/libraries/classes/Core.php index e899376eb4..b8e453655a 100644 --- a/libraries/classes/Core.php +++ b/libraries/classes/Core.php @@ -758,8 +758,7 @@ class Core */ public static function setPostAsGlobal(array $post_patterns): void { - $GLOBALS['containerBuilder'] = $GLOBALS['containerBuilder'] ?? null; - + $container = self::getContainerBuilder(); foreach (array_keys($_POST) as $post_key) { foreach ($post_patterns as $one_post_pattern) { if (! preg_match($one_post_pattern, $post_key)) { @@ -767,7 +766,7 @@ class Core } $GLOBALS[$post_key] = $_POST[$post_key]; - $GLOBALS['containerBuilder']->setParameter($post_key, $GLOBALS[$post_key]); + $container->setParameter($post_key, $GLOBALS[$post_key]); } } } diff --git a/libraries/classes/DbTableExists.php b/libraries/classes/DbTableExists.php index a13398b270..ad9e0f0387 100644 --- a/libraries/classes/DbTableExists.php +++ b/libraries/classes/DbTableExists.php @@ -70,8 +70,6 @@ final class DbTableExists private static function checkTable(string $db, string $table, bool $isTransformationWrapper): void { - $GLOBALS['containerBuilder'] = $GLOBALS['containerBuilder'] ?? null; - if (! empty($GLOBALS['is_table']) || defined('PMA_SUBMIT_MULT') || defined('TABLE_MAY_BE_ABSENT')) { return; } @@ -109,7 +107,7 @@ final class DbTableExists } /** @var SqlController $controller */ - $controller = $GLOBALS['containerBuilder']->get(SqlController::class); + $controller = Core::getContainerBuilder()->get(SqlController::class); $controller(Common::getRequest()); exit; diff --git a/libraries/classes/Export.php b/libraries/classes/Export.php index 6982ad58b7..58c795acaf 100644 --- a/libraries/classes/Export.php +++ b/libraries/classes/Export.php @@ -1078,13 +1078,12 @@ class Export public function showPage(string $exportType): void { $GLOBALS['active_page'] = $GLOBALS['active_page'] ?? null; - $GLOBALS['containerBuilder'] = $GLOBALS['containerBuilder'] ?? null; $request = Common::getRequest(); - + $container = Core::getContainerBuilder(); if ($exportType === 'server') { $GLOBALS['active_page'] = Url::getFromRoute('/server/export'); /** @var ServerExportController $controller */ - $controller = $GLOBALS['containerBuilder']->get(ServerExportController::class); + $controller = $container->get(ServerExportController::class); $controller($request); return; @@ -1093,7 +1092,7 @@ class Export if ($exportType === 'database') { $GLOBALS['active_page'] = Url::getFromRoute('/database/export'); /** @var DatabaseExportController $controller */ - $controller = $GLOBALS['containerBuilder']->get(DatabaseExportController::class); + $controller = $container->get(DatabaseExportController::class); $controller($request); return; @@ -1101,7 +1100,7 @@ class Export $GLOBALS['active_page'] = Url::getFromRoute('/table/export'); /** @var TableExportController $controller */ - $controller = $GLOBALS['containerBuilder']->get(TableExportController::class); + $controller = $container->get(TableExportController::class); $controller($request); } diff --git a/libraries/classes/Plugins.php b/libraries/classes/Plugins.php index 6b5077ac1f..ba61b2db62 100644 --- a/libraries/classes/Plugins.php +++ b/libraries/classes/Plugins.php @@ -68,13 +68,13 @@ class Plugins } if ($type === 'export') { - /** - * @psalm-suppress InvalidArrayOffset, MixedAssignment, MixedMethodCall - */ + $container = Core::getContainerBuilder(); + + /** @psalm-suppress MixedMethodCall */ return new $class( - $GLOBALS['containerBuilder']->get('relation'), - $GLOBALS['containerBuilder']->get('export'), - $GLOBALS['containerBuilder']->get('transformations') + $container->get('relation'), + $container->get('export'), + $container->get('transformations') ); } @@ -157,10 +157,11 @@ class Plugins } if ($type === 'Export' && is_subclass_of($class, ExportPlugin::class)) { + $container = Core::getContainerBuilder(); $plugins[] = new $class( - $GLOBALS['containerBuilder']->get('relation'), - $GLOBALS['containerBuilder']->get('export'), - $GLOBALS['containerBuilder']->get('transformations') + $container->get('relation'), + $container->get('export'), + $container->get('transformations') ); } elseif ($type === 'Import' && is_subclass_of($class, ImportPlugin::class)) { $plugins[] = new $class(); diff --git a/libraries/classes/Table/Indexes.php b/libraries/classes/Table/Indexes.php index 12c64cb153..fbfb21773d 100644 --- a/libraries/classes/Table/Indexes.php +++ b/libraries/classes/Table/Indexes.php @@ -6,6 +6,7 @@ namespace PhpMyAdmin\Table; use PhpMyAdmin\Common; use PhpMyAdmin\Controllers\Table\StructureController; +use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Index; @@ -45,8 +46,6 @@ final class Indexes */ public function doSaveData(Index $index, bool $renameMode, string $db, string $table): void { - $GLOBALS['containerBuilder'] = $GLOBALS['containerBuilder'] ?? null; - $error = false; if ($renameMode && Compatibility::isCompatibleRenameIndex($this->dbi->getVersion())) { $oldIndexName = $_POST['old_index']; @@ -107,7 +106,7 @@ final class Indexes ); } else { /** @var StructureController $controller */ - $controller = $GLOBALS['containerBuilder']->get(StructureController::class); + $controller = Core::getContainerBuilder()->get(StructureController::class); $controller(Common::getRequest()); } } else { diff --git a/libraries/classes/UrlRedirector.php b/libraries/classes/UrlRedirector.php index c7411c9567..6754c9f439 100644 --- a/libraries/classes/UrlRedirector.php +++ b/libraries/classes/UrlRedirector.php @@ -19,11 +19,10 @@ final class UrlRedirector */ public static function redirect(): void { - $GLOBALS['containerBuilder'] = $GLOBALS['containerBuilder'] ?? null; - // Load database service because services.php is not available here $GLOBALS['dbi'] = DatabaseInterface::load(); - $GLOBALS['containerBuilder']->set(DatabaseInterface::class, $GLOBALS['dbi']); + $container = Core::getContainerBuilder(); + $container->set(DatabaseInterface::class, $GLOBALS['dbi']); // Only output the http headers $response = ResponseRenderer::getInstance(); @@ -46,7 +45,7 @@ final class UrlRedirector * * @var Template $template */ - $template = $GLOBALS['containerBuilder']->get('template'); + $template = $container->get('template'); echo $template->render('javascript/redirect', [ 'url' => Sanitize::escapeJsString((string) $_GET['url']), ]); diff --git a/test/classes/Controllers/Table/RecentFavoriteControllerTest.php b/test/classes/Controllers/Table/RecentFavoriteControllerTest.php index b5790cae31..56e269098f 100644 --- a/test/classes/Controllers/Table/RecentFavoriteControllerTest.php +++ b/test/classes/Controllers/Table/RecentFavoriteControllerTest.php @@ -13,7 +13,7 @@ use PhpMyAdmin\Template; use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Tests\Stubs\DbiDummy; use PhpMyAdmin\Tests\Stubs\ResponseRenderer; -use Psr\Container\ContainerInterface; +use Symfony\Component\DependencyInjection\ContainerBuilder; /** * @covers \PhpMyAdmin\Controllers\Table\RecentFavoriteController @@ -52,7 +52,7 @@ class RecentFavoriteControllerTest extends AbstractTestCase $controller = $this->createMock(SqlController::class); $controller->expects($this->once())->method('__invoke'); - $container = $this->createMock(ContainerInterface::class); + $container = $this->createMock(ContainerBuilder::class); $container->expects($this->once())->method('get')->with(SqlController::class)->willReturn($controller); $GLOBALS['containerBuilder'] = $container; @@ -87,7 +87,7 @@ class RecentFavoriteControllerTest extends AbstractTestCase $controller = $this->createMock(SqlController::class); $controller->expects($this->once())->method('__invoke'); - $container = $this->createMock(ContainerInterface::class); + $container = $this->createMock(ContainerBuilder::class); $container->expects($this->once())->method('get')->with(SqlController::class)->willReturn($controller); $GLOBALS['containerBuilder'] = $container; diff --git a/test/classes/Controllers/Table/ReplaceControllerTest.php b/test/classes/Controllers/Table/ReplaceControllerTest.php index 101a5266bb..9b7de4797c 100644 --- a/test/classes/Controllers/Table/ReplaceControllerTest.php +++ b/test/classes/Controllers/Table/ReplaceControllerTest.php @@ -22,7 +22,7 @@ use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Tests\Stubs\DbiDummy; use PhpMyAdmin\Tests\Stubs\ResponseRenderer; use PhpMyAdmin\Transformations; -use Psr\Container\ContainerInterface; +use Symfony\Component\DependencyInjection\ContainerBuilder; /** * @covers \PhpMyAdmin\Controllers\Table\ReplaceController @@ -136,7 +136,7 @@ class ReplaceControllerTest extends AbstractTestCase new CheckUserPrivileges($dbi), $dbi ); - $GLOBALS['containerBuilder'] = $this->createStub(ContainerInterface::class); + $GLOBALS['containerBuilder'] = $this->createStub(ContainerBuilder::class); $GLOBALS['containerBuilder']->method('get')->willReturn($sqlController); $GLOBALS['goto'] = 'index.php?route=/sql'; @@ -181,7 +181,7 @@ class ReplaceControllerTest extends AbstractTestCase $request = $this->createStub(ServerRequest::class); $changeController = new ChangeController($response, $template, $insertEdit, $relation); - $GLOBALS['containerBuilder'] = $this->createStub(ContainerInterface::class); + $GLOBALS['containerBuilder'] = $this->createStub(ContainerBuilder::class); $GLOBALS['containerBuilder']->method('get')->willReturn($changeController); $dummyDbi->addSelectDb('my_db'); |