Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaurício Meneghini Fauth <mauricio@fauth.dev>2022-09-30 04:36:46 +0300
committerMaurício Meneghini Fauth <mauricio@fauth.dev>2022-09-30 04:36:46 +0300
commitbb97ed988f8a34c414d29598fc808951cec7d981 (patch)
treebbdea68e11bec9533174287c1c386536f5f40f34
parentf54cc49f869945976179cae4daba77c2e05b177c (diff)
Reduce usage of the containerBuilder global variable
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
-rw-r--r--index.php3
-rw-r--r--libraries/classes/Common.php1
-rw-r--r--libraries/classes/Controllers/Export/ExportController.php3
-rw-r--r--libraries/classes/Controllers/Table/RecentFavoriteController.php5
-rw-r--r--libraries/classes/Controllers/Table/ReplaceController.php13
-rw-r--r--libraries/classes/Controllers/View/CreateController.php4
-rw-r--r--libraries/classes/Core.php5
-rw-r--r--libraries/classes/DbTableExists.php4
-rw-r--r--libraries/classes/Export.php9
-rw-r--r--libraries/classes/Plugins.php19
-rw-r--r--libraries/classes/Table/Indexes.php5
-rw-r--r--libraries/classes/UrlRedirector.php7
-rw-r--r--test/classes/Controllers/Table/RecentFavoriteControllerTest.php6
-rw-r--r--test/classes/Controllers/Table/ReplaceControllerTest.php6
14 files changed, 41 insertions, 49 deletions
diff --git a/index.php b/index.php
index caa57cf210..4ed75379e1 100644
--- a/index.php
+++ b/index.php
@@ -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');