From a395bd282337bd46d1ede5c1d4e3a65537f881be Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 19 May 2019 21:58:32 +0200 Subject: [PATCH 01/26] Remove as much as possible the old DI system Signed-off-by: Hugues Peccatte --- ajax.php | 10 +++------- browse_foreigners.php | 7 ++----- chk_rel.php | 7 ++----- db_central_columns.php | 4 ++-- db_datadict.php | 2 +- db_designer.php | 7 ++----- db_events.php | 4 ++-- db_export.php | 7 ++----- db_multi_table_query.php | 4 ++-- db_operations.php | 7 ++----- db_qbe.php | 7 ++----- db_routines.php | 4 ++-- db_search.php | 7 ++----- db_sql.php | 4 ++-- db_sql_autocomplete.php | 7 ++----- db_structure.php | 10 +++------- db_triggers.php | 4 ++-- export.php | 7 ++----- import.php | 7 ++----- index.php | 7 ++----- libraries/tbl_columns_definition_form.inc.php | 5 +++-- navigation.php | 7 ++----- normalization.php | 7 ++----- schema_export.php | 5 ----- server_binlog.php | 6 +----- server_collations.php | 7 ++----- server_databases.php | 9 +++------ server_engines.php | 6 +----- server_plugins.php | 7 +------ server_privileges.php | 6 +++--- server_replication.php | 7 ++----- server_sql.php | 7 ++----- server_status.php | 7 ++----- server_status_advisor.php | 7 ++----- server_status_monitor.php | 7 ++----- server_status_processes.php | 7 ++----- server_status_queries.php | 7 ++----- server_status_variables.php | 7 ++----- server_user_groups.php | 7 ++----- server_variables.php | 6 +----- services.yml | 9 +++++++++ tbl_sql.php | 4 ++-- transformation_wrapper.php | 7 ++----- view_operations.php | 7 ++----- 44 files changed, 93 insertions(+), 191 deletions(-) diff --git a/ajax.php b/ajax.php index d0a4516458..b646dceb4b 100644 --- a/ajax.php +++ b/ajax.php @@ -22,16 +22,12 @@ $_GET['ajax_request'] = 'true'; require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); +$response->setAjax(true); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); - -$response->setAjax(true); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var AjaxController $controller */ $controller = $containerBuilder->get(AjaxController::class); diff --git a/browse_foreigners.php b/browse_foreigners.php index 6a915b4dc6..f7014397f6 100644 --- a/browse_foreigners.php +++ b/browse_foreigners.php @@ -23,14 +23,11 @@ require_once ROOT_PATH . 'libraries/common.inc.php'; Util::checkParameters(['db', 'table', 'field'], true); -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var Template $template */ $template = $containerBuilder->get('template'); diff --git a/chk_rel.php b/chk_rel.php index 027541cf9a..13d9954e3c 100644 --- a/chk_rel.php +++ b/chk_rel.php @@ -18,14 +18,11 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var Relation $relation */ $relation = $containerBuilder->get('relation'); diff --git a/db_central_columns.php b/db_central_columns.php index ce9965f93e..3cf500c2b5 100644 --- a/db_central_columns.php +++ b/db_central_columns.php @@ -28,10 +28,10 @@ $container = Container::getDefaultContainer(); $container->set(Response::class, Response::getInstance()); /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); $centralColumns = new CentralColumns($dbi); /* Define dependencies for the concerned controller */ diff --git a/db_datadict.php b/db_datadict.php index 03fa55f1d8..f0e9e921fe 100644 --- a/db_datadict.php +++ b/db_datadict.php @@ -30,7 +30,7 @@ $container = Container::getDefaultContainer(); $container->set(Response::class, Response::getInstance()); /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /* Define dependencies for the concerned controller */ $dependency_definitions = [ diff --git a/db_designer.php b/db_designer.php index ebfaacb525..1041f02442 100644 --- a/db_designer.php +++ b/db_designer.php @@ -21,14 +21,11 @@ global $db; require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var Designer $databaseDesigner */ $databaseDesigner = $containerBuilder->get('designer'); diff --git a/db_events.php b/db_events.php index 3e8521aed5..a581f491e0 100644 --- a/db_events.php +++ b/db_events.php @@ -27,10 +27,10 @@ $container = Container::getDefaultContainer(); $container->set(Response::class, Response::getInstance()); /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); $_PMA_RTE = 'EVN'; diff --git a/db_export.php b/db_export.php index aec0b9a53d..6ab89d2a00 100644 --- a/db_export.php +++ b/db_export.php @@ -24,14 +24,11 @@ global $db, $table, $url_query; require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); PageSettings::showGroup('Export'); diff --git a/db_multi_table_query.php b/db_multi_table_query.php index 2adf0aa96d..76d39059de 100644 --- a/db_multi_table_query.php +++ b/db_multi_table_query.php @@ -26,10 +26,10 @@ $container = Container::getDefaultContainer(); $container->set(Response::class, Response::getInstance()); /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var Definition $definition */ $definition = $containerBuilder->getDefinition(MultiTableQueryController::class); diff --git a/db_operations.php b/db_operations.php index 1dee2a7614..7b8e19fcad 100644 --- a/db_operations.php +++ b/db_operations.php @@ -34,14 +34,11 @@ global $cfg, $db, $server, $url_query; require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); $checkUserPrivileges = new CheckUserPrivileges($dbi); $checkUserPrivileges->getPrivileges(); diff --git a/db_qbe.php b/db_qbe.php index 65a85fa179..3337c2bce9 100644 --- a/db_qbe.php +++ b/db_qbe.php @@ -27,14 +27,11 @@ global $db, $pmaThemeImage, $url_query; require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var Relation $relation */ $relation = $containerBuilder->get('relation'); diff --git a/db_routines.php b/db_routines.php index be2dbd744a..569f5000f2 100644 --- a/db_routines.php +++ b/db_routines.php @@ -28,10 +28,10 @@ $container = Container::getDefaultContainer(); $container->set(Response::class, Response::getInstance()); /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); $checkUserPrivileges = new CheckUserPrivileges($dbi); $checkUserPrivileges->getPrivileges(); diff --git a/db_search.php b/db_search.php index b1de5576e8..eee69ac0d9 100644 --- a/db_search.php +++ b/db_search.php @@ -24,14 +24,11 @@ global $db, $url_query; require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var Template $template */ $template = $containerBuilder->get('template'); diff --git a/db_sql.php b/db_sql.php index af286d1f3d..3e18e56fe5 100644 --- a/db_sql.php +++ b/db_sql.php @@ -26,10 +26,10 @@ $container = Container::getDefaultContainer(); $container->set(Response::class, Response::getInstance()); /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var Definition $definition */ $definition = $containerBuilder->getDefinition(SqlController::class); diff --git a/db_sql_autocomplete.php b/db_sql_autocomplete.php index bac726590c..42d0b67aeb 100644 --- a/db_sql_autocomplete.php +++ b/db_sql_autocomplete.php @@ -17,14 +17,11 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); if ($GLOBALS['cfg']['EnableAutocompleteForTablesAndColumns']) { $db = isset($_POST['db']) ? $_POST['db'] : $GLOBALS['db']; diff --git a/db_structure.php b/db_structure.php index 67af9f9f10..0316730cfc 100644 --- a/db_structure.php +++ b/db_structure.php @@ -24,12 +24,11 @@ global $db; require_once ROOT_PATH . 'libraries/common.inc.php'; require_once ROOT_PATH . 'libraries/db_common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); -$container->alias('response', Response::class); +/** @var Response $response */ +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /* Define dependencies for the concerned controller */ $dependency_definitions = [ @@ -49,9 +48,6 @@ array_map( /** @var StructureController $controller */ $controller = $containerBuilder->get(StructureController::class); -/** @var Response $response */ -$response = $container->get(Response::class); - if ($response->isAjax() && ! empty($_REQUEST['favorite_table'])) { $json = $controller->addRemoveFavoriteTablesAction([ 'favorite_table' => $_REQUEST['favorite_table'], diff --git a/db_triggers.php b/db_triggers.php index eb3453ebf9..455177bfae 100644 --- a/db_triggers.php +++ b/db_triggers.php @@ -27,10 +27,10 @@ $container = Container::getDefaultContainer(); $container->set(Response::class, Response::getInstance()); /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); $_PMA_RTE = 'TRI'; diff --git a/export.php b/export.php index c620cd83fe..1275e97d55 100644 --- a/export.php +++ b/export.php @@ -31,14 +31,11 @@ global $db, $sql_query; include_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); $header = $response->getHeader(); $scripts = $header->getScripts(); diff --git a/import.php b/import.php index b5633e8cd8..2a6ac70664 100644 --- a/import.php +++ b/import.php @@ -35,14 +35,11 @@ global $db, $pmaThemeImage, $table; require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var import $import */ $import = $containerBuilder->get('import'); diff --git a/index.php b/index.php index de16b88573..a21a7d9f3a 100644 --- a/index.php +++ b/index.php @@ -60,14 +60,11 @@ if (! empty($_REQUEST['target']) exit; } -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var HomeController $controller */ $controller = $containerBuilder->get(HomeController::class); diff --git a/libraries/tbl_columns_definition_form.inc.php b/libraries/tbl_columns_definition_form.inc.php index 5565c60d7c..25e6f98c6f 100644 --- a/libraries/tbl_columns_definition_form.inc.php +++ b/libraries/tbl_columns_definition_form.inc.php @@ -8,6 +8,7 @@ */ declare(strict_types=1); +use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Di\Container; use PhpMyAdmin\Partition; use PhpMyAdmin\Relation; @@ -106,8 +107,8 @@ $comments_map = $relation->getComments($db, $table); $move_columns = []; if (isset($fields_meta)) { - /** @var PhpMyAdmin\DatabaseInterface $dbi */ - $dbi = Container::getDefaultContainer()->get('dbi'); + /** @var DatabaseInterface $dbi */ + $dbi = $containerBuilder->get('dbi'); $move_columns = $dbi->getTable($db, $table)->getColumnsMeta(); } diff --git a/navigation.php b/navigation.php index 9a94ba7329..d57d947f0c 100644 --- a/navigation.php +++ b/navigation.php @@ -23,14 +23,11 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var Navigation $navigation */ $navigation = $containerBuilder->get('navigation'); diff --git a/normalization.php b/normalization.php index 01c9ca3f3b..c6b8c6b110 100644 --- a/normalization.php +++ b/normalization.php @@ -22,14 +22,11 @@ global $db, $table; require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var Normalization $normalization */ $normalization = $containerBuilder->get('normalization'); diff --git a/schema_export.php b/schema_export.php index 62cd13135a..c928bed85a 100644 --- a/schema_export.php +++ b/schema_export.php @@ -19,11 +19,6 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); - -/** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); - /** * get all variables needed for exporting relational schema * in $cfgRelation diff --git a/server_binlog.php b/server_binlog.php index 7721aa4781..c76891acab 100644 --- a/server_binlog.php +++ b/server_binlog.php @@ -17,15 +17,11 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); -$container->alias('response', Response::class); - /** @var BinlogController $controller */ $controller = $containerBuilder->get(BinlogController::class); /** @var Response $response */ -$response = $container->get('response'); +$response = $containerBuilder->get(Response::class); $response->addHTML($controller->indexAction([ 'log' => $_POST['log'] ?? null, diff --git a/server_collations.php b/server_collations.php index 96f8b1608e..ccc61467d3 100644 --- a/server_collations.php +++ b/server_collations.php @@ -17,12 +17,9 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); -$container->alias('response', Response::class); - /** @var CollationsController $controller */ $controller = $containerBuilder->get(CollationsController::class); -$response = $container->get('response'); +/** @var Response $response */ +$response = $containerBuilder->get(Response::class); $response->addHTML($controller->indexAction()); diff --git a/server_databases.php b/server_databases.php index f56327d02e..0d60a20429 100644 --- a/server_databases.php +++ b/server_databases.php @@ -20,15 +20,12 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$response = $containerBuilder->get('response', ContainerInterface::NULL_ON_INVALID_REFERENCE) ?? Response::getInstance(); - -$container = Container::getDefaultContainer(); -$container->set(Response::class, $response); -$container->alias('response', Response::class); - /** @var DatabasesController $controller */ $controller = $containerBuilder->get(DatabasesController::class); +/** @var Response $response */ +$response = $containerBuilder->get(Response::class); + /** @var DatabaseInterface $dbi */ $dbi = $containerBuilder->get(DatabaseInterface::class); diff --git a/server_engines.php b/server_engines.php index 887eb5cfca..18bc179e82 100644 --- a/server_engines.php +++ b/server_engines.php @@ -17,15 +17,11 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); -$container->alias('response', Response::class); - /** @var EnginesController $controller */ $controller = $containerBuilder->get(EnginesController::class); /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); if (isset($_GET['engine']) && $_GET['engine'] !== '') { $response->addHTML($controller->show([ diff --git a/server_plugins.php b/server_plugins.php index f07729d756..72b773c8b1 100644 --- a/server_plugins.php +++ b/server_plugins.php @@ -17,14 +17,9 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); -$container->alias('response', Response::class); - /** @var PluginsController $controller */ $controller = $containerBuilder->get(PluginsController::class); /** @var Response $response */ -$response = $container->get(Response::class); - +$response = $containerBuilder->get(Response::class); $response->addHTML($controller->index()); diff --git a/server_privileges.php b/server_privileges.php index aa3c0446d1..7001abf483 100644 --- a/server_privileges.php +++ b/server_privileges.php @@ -27,10 +27,11 @@ global $db, $pmaThemeImage, $text_dir, $url_query; require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); +/** @var Response $response */ +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); $checkUserPrivileges = new CheckUserPrivileges($dbi); $checkUserPrivileges->getPrivileges(); @@ -42,7 +43,6 @@ $cfgRelation = $relation->getRelationsParam(); /** * Does the common work */ -$response = Response::getInstance(); $header = $response->getHeader(); $scripts = $header->getScripts(); $scripts->addFile('server/privileges.js'); diff --git a/server_replication.php b/server_replication.php index f5a6c0388d..419eb2091c 100644 --- a/server_replication.php +++ b/server_replication.php @@ -21,14 +21,11 @@ require_once ROOT_PATH . 'libraries/common.inc.php'; require_once ROOT_PATH . 'libraries/server_common.inc.php'; require_once ROOT_PATH . 'libraries/replication.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var ReplicationController $controller */ $controller = $containerBuilder->get(ReplicationController::class); diff --git a/server_sql.php b/server_sql.php index bdb594b146..6cb7cde515 100644 --- a/server_sql.php +++ b/server_sql.php @@ -19,14 +19,11 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var SqlController $controller */ $controller = $containerBuilder->get(SqlController::class); diff --git a/server_status.php b/server_status.php index ac1b32ab8c..e90af13bef 100644 --- a/server_status.php +++ b/server_status.php @@ -21,14 +21,11 @@ require_once ROOT_PATH . 'libraries/common.inc.php'; require_once ROOT_PATH . 'libraries/server_common.inc.php'; require_once ROOT_PATH . 'libraries/replication.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var StatusController $controller */ $controller = $containerBuilder->get(StatusController::class); diff --git a/server_status_advisor.php b/server_status_advisor.php index 522e1bda4d..f29fda63b5 100644 --- a/server_status_advisor.php +++ b/server_status_advisor.php @@ -20,14 +20,11 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; require_once ROOT_PATH . 'libraries/replication.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); $scripts = $response->getHeader()->getScripts(); $scripts->addFile('server/status/advisor.js'); diff --git a/server_status_monitor.php b/server_status_monitor.php index d84aaec2cc..28fe96a21d 100644 --- a/server_status_monitor.php +++ b/server_status_monitor.php @@ -22,14 +22,11 @@ require_once ROOT_PATH . 'libraries/common.inc.php'; require_once ROOT_PATH . 'libraries/server_common.inc.php'; require_once ROOT_PATH . 'libraries/replication.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var MonitorController $controller */ $controller = $containerBuilder->get(MonitorController::class); diff --git a/server_status_processes.php b/server_status_processes.php index fd88fe1d60..bc02251d11 100644 --- a/server_status_processes.php +++ b/server_status_processes.php @@ -21,14 +21,11 @@ require_once ROOT_PATH . 'libraries/common.inc.php'; require_once ROOT_PATH . 'libraries/server_common.inc.php'; require_once ROOT_PATH . 'libraries/replication.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var ProcessesController $controller */ $controller = $containerBuilder->get(ProcessesController::class); diff --git a/server_status_queries.php b/server_status_queries.php index d3c9baa4a4..c15b57a9fd 100644 --- a/server_status_queries.php +++ b/server_status_queries.php @@ -21,14 +21,11 @@ require_once ROOT_PATH . 'libraries/common.inc.php'; require_once ROOT_PATH . 'libraries/server_common.inc.php'; require_once ROOT_PATH . 'libraries/replication.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var QueriesController $controller */ $controller = $containerBuilder->get(QueriesController::class); diff --git a/server_status_variables.php b/server_status_variables.php index 92af9724f9..6d54a2b3c7 100644 --- a/server_status_variables.php +++ b/server_status_variables.php @@ -21,14 +21,11 @@ require_once ROOT_PATH . 'libraries/common.inc.php'; require_once ROOT_PATH . 'libraries/server_common.inc.php'; require_once ROOT_PATH . 'libraries/replication.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var VariablesController $controller */ $controller = $containerBuilder->get(VariablesController::class); diff --git a/server_user_groups.php b/server_user_groups.php index 5839a52ba9..ffe962ee3b 100644 --- a/server_user_groups.php +++ b/server_user_groups.php @@ -20,14 +20,11 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var Relation $relation */ $relation = $containerBuilder->get('relation'); diff --git a/server_variables.php b/server_variables.php index 516f122143..5fce620480 100644 --- a/server_variables.php +++ b/server_variables.php @@ -17,15 +17,11 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); -$container->alias('response', Response::class); - /** @var VariablesController $controller */ $controller = $containerBuilder->get(VariablesController::class); /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); if ($response->isAjax() && isset($_GET['type']) && $_GET['type'] === 'getval') { diff --git a/services.yml b/services.yml index 5df784c3a7..3f25a068ff 100644 --- a/services.yml +++ b/services.yml @@ -71,6 +71,9 @@ services: replication: '@replication' template: '@template' + response: + factory: 'PhpMyAdmin\Response::getInstance' + sql_query_form: class: 'PhpMyAdmin\SqlQueryForm' @@ -93,3 +96,9 @@ services: transformations: class: 'PhpMyAdmin\Transformations' + + #Aliases + + PhpMyAdmin\Response: '@response' + + PhpMyAdmin\DatabaseInterface: '@dbi' \ No newline at end of file diff --git a/tbl_sql.php b/tbl_sql.php index 88f00eafe3..45073968f7 100644 --- a/tbl_sql.php +++ b/tbl_sql.php @@ -26,10 +26,10 @@ $container = Container::getDefaultContainer(); $container->set(Response::class, Response::getInstance()); /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /* Define dependencies for the concerned controller */ $dependency_definitions = [ diff --git a/transformation_wrapper.php b/transformation_wrapper.php index 27bb0b9e0c..904071ad98 100644 --- a/transformation_wrapper.php +++ b/transformation_wrapper.php @@ -24,14 +24,11 @@ global $db, $table; require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); /** @var Transformations $transformations */ $transformations = $containerBuilder->get('transformations'); diff --git a/view_operations.php b/view_operations.php index 719d8540d6..a752542b44 100644 --- a/view_operations.php +++ b/view_operations.php @@ -25,14 +25,11 @@ global $sql_query, $url_query; require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); $pma_table = new Table($GLOBALS['table'], $GLOBALS['db']); From e060b82ff11145ff4756583eba7c5179dae146e0 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 19 May 2019 22:51:46 +0200 Subject: [PATCH 02/26] Initialize use of DI parameters for GLOBALS variables Signed-off-by: Hugues Peccatte --- db_events.php | 4 -- libraries/classes/Core.php | 12 +++--- libraries/classes/Di/Migration.php | 59 ++++++++++++++++++++++++++++++ libraries/common.inc.php | 45 ++++++++++++++--------- services.yml | 4 ++ services_controllers.yml | 2 +- 6 files changed, 98 insertions(+), 28 deletions(-) create mode 100644 libraries/classes/Di/Migration.php diff --git a/db_events.php b/db_events.php index a581f491e0..9ea11c0f60 100644 --- a/db_events.php +++ b/db_events.php @@ -34,10 +34,6 @@ $dbi = $containerBuilder->get(DatabaseInterface::class); $_PMA_RTE = 'EVN'; -/** @var Definition $definition */ -$definition = $containerBuilder->getDefinition(EventsController::class); -$definition->replaceArgument('db', $container->get('db')); - /** @var EventsController $controller */ $controller = $containerBuilder->get(EventsController::class); diff --git a/libraries/classes/Core.php b/libraries/classes/Core.php index 618ced65d5..9588982165 100644 --- a/libraries/classes/Core.php +++ b/libraries/classes/Core.php @@ -11,6 +11,7 @@ declare(strict_types=1); namespace PhpMyAdmin; +use PhpMyAdmin\Di\Migration; use PhpMyAdmin\Display\Error as DisplayError; /** @@ -905,7 +906,7 @@ class Core foreach (array_keys($_POST) as $post_key) { foreach ($post_patterns as $one_post_pattern) { if (preg_match($one_post_pattern, $post_key)) { - $GLOBALS[$post_key] = $_POST[$post_key]; + Migration::getInstance()->setGlobal($post_key, $_POST[$post_key]); } } } @@ -920,13 +921,12 @@ class Core */ public static function setGlobalDbOrTable(string $param): void { - $GLOBALS[$param] = ''; + $value = ''; if (self::isValid($_REQUEST[$param])) { - // can we strip tags from this? - // only \ and / is not allowed in db names for MySQL - $GLOBALS[$param] = $_REQUEST[$param]; - $GLOBALS['url_params'][$param] = $GLOBALS[$param]; + $value = $_REQUEST[$param]; } + Migration::getInstance()->setGlobal($param, $value); + Migration::getInstance()->setGlobal('url_params', [$param => $value] + $GLOBALS['url_params']); } /** diff --git a/libraries/classes/Di/Migration.php b/libraries/classes/Di/Migration.php new file mode 100644 index 0000000000..651e6a7a27 --- /dev/null +++ b/libraries/classes/Di/Migration.php @@ -0,0 +1,59 @@ +containerBuilder = $containerBuilder; + } + + /** + * Get the instance of the service + * + * @param string $key + * @param $value + * + * @return void + */ + public function setGlobal(string $key, $value) + { + $GLOBALS[$key] = $value; + $this->containerBuilder->setParameter($key, $value); + } +} diff --git a/libraries/common.inc.php b/libraries/common.inc.php index 984a2225c9..8ee67e78d3 100644 --- a/libraries/common.inc.php +++ b/libraries/common.inc.php @@ -35,6 +35,7 @@ declare(strict_types=1); use PhpMyAdmin\Config; use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; +use PhpMyAdmin\Di\Migration; use PhpMyAdmin\ErrorHandler; use PhpMyAdmin\LanguageManager; use PhpMyAdmin\Logging; @@ -92,6 +93,8 @@ $containerBuilder = new ContainerBuilder(); $loader = new YamlFileLoader($containerBuilder, new FileLocator(__DIR__)); $loader->load('../services.yml'); $loader->load('../services_controllers.yml'); +/** @var Migration $diMigration */ +$diMigration = $containerBuilder->get('di_migration'); /** * Load gettext functions. @@ -142,17 +145,17 @@ if (! defined('PMA_NO_SESSION')) { * holds parameters to be passed to next page * @global array $GLOBALS['url_params'] */ -$GLOBALS['url_params'] = []; +$diMigration->setGlobal('url_params', []); /** * holds page that should be displayed * @global string $GLOBALS['goto'] */ -$GLOBALS['goto'] = ''; +$diMigration->setGlobal('goto', ''); // Security fix: disallow accessing serious server files via "?goto=" if (isset($_REQUEST['goto']) && Core::checkPageValidity($_REQUEST['goto'])) { - $GLOBALS['goto'] = $_REQUEST['goto']; - $GLOBALS['url_params']['goto'] = $_REQUEST['goto']; + $diMigration->setGlobal('goto', $_REQUEST['goto']); + $diMigration->setGlobal('url_params', ['goto' => $_REQUEST['goto']]); } else { unset($_REQUEST['goto'], $_GET['goto'], $_POST['goto'], $_COOKIE['goto']); } @@ -162,7 +165,7 @@ if (isset($_REQUEST['goto']) && Core::checkPageValidity($_REQUEST['goto'])) { * @global string $GLOBALS['back'] */ if (isset($_REQUEST['back']) && Core::checkPageValidity($_REQUEST['back'])) { - $GLOBALS['back'] = $_REQUEST['back']; + $diMigration->setGlobal('back', $_REQUEST['back']); } else { unset($_REQUEST['back'], $_GET['back'], $_POST['back'], $_COOKIE['back']); } @@ -232,24 +235,32 @@ Core::setGlobalDbOrTable('table'); if (isset($_REQUEST['selected_recent_table']) && Core::isValid($_REQUEST['selected_recent_table'])) { $recent_table = json_decode($_REQUEST['selected_recent_table'], true); - $GLOBALS['db'] - = (array_key_exists('db', $recent_table) && is_string($recent_table['db'])) ? - $recent_table['db'] : ''; - $GLOBALS['url_params']['db'] = $GLOBALS['db']; + $diMigration->setGlobal( + 'db', + (array_key_exists('db', $recent_table) && is_string($recent_table['db'])) ? $recent_table['db'] : '' + ); + $diMigration->setGlobal( + 'url_params', + ['db' => $containerBuilder->getParameter('db')] + $containerBuilder->getParameter('url_params') + ); - $GLOBALS['table'] - = (array_key_exists('table', $recent_table) && is_string($recent_table['table'])) ? - $recent_table['table'] : ''; - $GLOBALS['url_params']['table'] = $GLOBALS['table']; + $diMigration->setGlobal( + 'table', + (array_key_exists('table', $recent_table) && is_string($recent_table['table'])) ? $recent_table['table'] : '' + ); + $diMigration->setGlobal( + 'url_params', + ['table' => $containerBuilder->getParameter('table')] + $containerBuilder->getParameter('url_params') + ); } /** * SQL query to be executed * @global string $GLOBALS['sql_query'] */ -$GLOBALS['sql_query'] = ''; +$diMigration->setGlobal('sql_query', ''); if (Core::isValid($_POST['sql_query'])) { - $GLOBALS['sql_query'] = $_POST['sql_query']; + $diMigration->setGlobal('sql_query', $_POST['sql_query']); } //$_REQUEST['set_theme'] // checked later in this file LABEL_theme_setup @@ -287,8 +298,8 @@ $GLOBALS['PMA_Config']->checkServers(); * current server * @global integer $GLOBALS['server'] */ -$GLOBALS['server'] = $GLOBALS['PMA_Config']->selectServer(); -$GLOBALS['url_params']['server'] = $GLOBALS['server']; +$diMigration->setGlobal('server', $GLOBALS['PMA_Config']->selectServer()); +$diMigration->setGlobal('url_params', ['server' => $containerBuilder->getParameter('server')] + $containerBuilder->getParameter('url_params')); /** * BC - enable backward compatibility diff --git a/services.yml b/services.yml index 3f25a068ff..7af8d3a2f1 100644 --- a/services.yml +++ b/services.yml @@ -46,6 +46,10 @@ services: import: class: 'PhpMyAdmin\Import' + di_migration: + factory: 'PhpMyAdmin\Di\Migration::getInstance' + arguments: ['@service_container'] + navigation: class: 'PhpMyAdmin\Navigation\Navigation' arguments: ['@template', '@relation', '@dbi'] diff --git a/services_controllers.yml b/services_controllers.yml index 23058937cf..edd38b707a 100644 --- a/services_controllers.yml +++ b/services_controllers.yml @@ -41,7 +41,7 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null + db: '%db%' PhpMyAdmin\Controllers\Database\MultiTableQueryController: class: 'PhpMyAdmin\Controllers\Database\MultiTableQueryController' From df847d71219d6b7273a7f98341cdcc7e36e834bf Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Fri, 24 May 2019 22:06:57 +0200 Subject: [PATCH 03/26] Remove useless 'use' Signed-off-by: Hugues Peccatte --- ajax.php | 1 - browse_foreigners.php | 1 - chk_rel.php | 1 - db_datadict.php | 3 --- db_designer.php | 1 - db_events.php | 1 - db_export.php | 1 - db_operations.php | 1 - db_qbe.php | 1 - db_search.php | 1 - db_sql_autocomplete.php | 1 - db_structure.php | 3 --- export.php | 1 - index.php | 1 - libraries/tbl_columns_definition_form.inc.php | 1 - navigation.php | 2 -- normalization.php | 1 - schema_export.php | 2 -- server_binlog.php | 1 - server_collations.php | 1 - server_databases.php | 2 -- server_engines.php | 1 - server_plugins.php | 1 - server_privileges.php | 1 - server_replication.php | 1 - server_sql.php | 1 - server_status.php | 1 - server_status_advisor.php | 2 -- server_status_monitor.php | 3 --- server_status_processes.php | 2 -- server_status_queries.php | 2 -- server_status_variables.php | 2 -- server_user_groups.php | 1 - server_variables.php | 1 - transformation_overview.php | 1 - transformation_wrapper.php | 1 - view_operations.php | 1 - 37 files changed, 50 deletions(-) diff --git a/ajax.php b/ajax.php index b646dceb4b..9e02080b39 100644 --- a/ajax.php +++ b/ajax.php @@ -10,7 +10,6 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\AjaxController; use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; use PhpMyAdmin\Util; diff --git a/browse_foreigners.php b/browse_foreigners.php index f7014397f6..dea79c4e56 100644 --- a/browse_foreigners.php +++ b/browse_foreigners.php @@ -10,7 +10,6 @@ declare(strict_types=1); use PhpMyAdmin\BrowseForeigners; use PhpMyAdmin\Controllers\BrowseForeignersController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; use PhpMyAdmin\Template; use PhpMyAdmin\Util; diff --git a/chk_rel.php b/chk_rel.php index 13d9954e3c..245591735e 100644 --- a/chk_rel.php +++ b/chk_rel.php @@ -8,7 +8,6 @@ declare(strict_types=1); use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Relation; use PhpMyAdmin\Response; diff --git a/db_datadict.php b/db_datadict.php index f0e9e921fe..f2802d5106 100644 --- a/db_datadict.php +++ b/db_datadict.php @@ -8,11 +8,8 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Database\DataDictionaryController; -use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Di\Container; -use PhpMyAdmin\Relation; use PhpMyAdmin\Response; -use PhpMyAdmin\Transformations; use PhpMyAdmin\Util; use Symfony\Component\DependencyInjection\Definition; diff --git a/db_designer.php b/db_designer.php index 1041f02442..0dc2c022fb 100644 --- a/db_designer.php +++ b/db_designer.php @@ -10,7 +10,6 @@ declare(strict_types=1); use PhpMyAdmin\Database\Designer; use PhpMyAdmin\Database\Designer\Common; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; if (! defined('ROOT_PATH')) { diff --git a/db_events.php b/db_events.php index 9ea11c0f60..54240048bc 100644 --- a/db_events.php +++ b/db_events.php @@ -13,7 +13,6 @@ use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; use PhpMyAdmin\Url; use PhpMyAdmin\Util; -use Symfony\Component\DependencyInjection\Definition; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); diff --git a/db_export.php b/db_export.php index 6ab89d2a00..a732dbeb8d 100644 --- a/db_export.php +++ b/db_export.php @@ -9,7 +9,6 @@ declare(strict_types=1); use PhpMyAdmin\Config\PageSettings; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Display\Export as DisplayExport; use PhpMyAdmin\Export; use PhpMyAdmin\Message; diff --git a/db_operations.php b/db_operations.php index 7b8e19fcad..c31418cb7b 100644 --- a/db_operations.php +++ b/db_operations.php @@ -15,7 +15,6 @@ declare(strict_types=1); use PhpMyAdmin\CheckUserPrivileges; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Display\CreateTable; use PhpMyAdmin\Message; use PhpMyAdmin\Operations; diff --git a/db_qbe.php b/db_qbe.php index 3337c2bce9..0ebae09ec3 100644 --- a/db_qbe.php +++ b/db_qbe.php @@ -9,7 +9,6 @@ declare(strict_types=1); use PhpMyAdmin\Database\Qbe; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Message; use PhpMyAdmin\Relation; use PhpMyAdmin\Response; diff --git a/db_search.php b/db_search.php index eee69ac0d9..44cc1818ac 100644 --- a/db_search.php +++ b/db_search.php @@ -11,7 +11,6 @@ declare(strict_types=1); use PhpMyAdmin\Database\Search; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; use PhpMyAdmin\Template; use PhpMyAdmin\Util; diff --git a/db_sql_autocomplete.php b/db_sql_autocomplete.php index 42d0b67aeb..86e94e1b30 100644 --- a/db_sql_autocomplete.php +++ b/db_sql_autocomplete.php @@ -8,7 +8,6 @@ declare(strict_types=1); use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; if (! defined('ROOT_PATH')) { diff --git a/db_structure.php b/db_structure.php index 0316730cfc..0da843bbaf 100644 --- a/db_structure.php +++ b/db_structure.php @@ -9,9 +9,6 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Database\StructureController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; -use PhpMyAdmin\Relation; -use PhpMyAdmin\Replication; use PhpMyAdmin\Response; use Symfony\Component\DependencyInjection\Definition; diff --git a/export.php b/export.php index 1275e97d55..c521e233c3 100644 --- a/export.php +++ b/export.php @@ -9,7 +9,6 @@ declare(strict_types=1); use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Encoding; use PhpMyAdmin\Export; use PhpMyAdmin\Plugins; diff --git a/index.php b/index.php index a21a7d9f3a..11d40b7ed1 100644 --- a/index.php +++ b/index.php @@ -10,7 +10,6 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\HomeController; use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; use PhpMyAdmin\Url; use PhpMyAdmin\Util; diff --git a/libraries/tbl_columns_definition_form.inc.php b/libraries/tbl_columns_definition_form.inc.php index 25e6f98c6f..5644473313 100644 --- a/libraries/tbl_columns_definition_form.inc.php +++ b/libraries/tbl_columns_definition_form.inc.php @@ -9,7 +9,6 @@ declare(strict_types=1); use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Partition; use PhpMyAdmin\Relation; use PhpMyAdmin\Response; diff --git a/navigation.php b/navigation.php index d57d947f0c..a548b9a5e4 100644 --- a/navigation.php +++ b/navigation.php @@ -9,12 +9,10 @@ declare(strict_types=1); use PhpMyAdmin\Config\PageSettings; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Message; use PhpMyAdmin\Navigation\Navigation; use PhpMyAdmin\Relation; use PhpMyAdmin\Response; -use PhpMyAdmin\Template; use PhpMyAdmin\Util; if (! defined('ROOT_PATH')) { diff --git a/normalization.php b/normalization.php index c6b8c6b110..a93c1176e3 100644 --- a/normalization.php +++ b/normalization.php @@ -9,7 +9,6 @@ declare(strict_types=1); use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Normalization; use PhpMyAdmin\Response; use PhpMyAdmin\Url; diff --git a/schema_export.php b/schema_export.php index c928bed85a..527cfeb6e8 100644 --- a/schema_export.php +++ b/schema_export.php @@ -7,8 +7,6 @@ */ declare(strict_types=1); -use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Export; use PhpMyAdmin\Relation; use PhpMyAdmin\Util; diff --git a/server_binlog.php b/server_binlog.php index c76891acab..35d9c719f7 100644 --- a/server_binlog.php +++ b/server_binlog.php @@ -8,7 +8,6 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Server\BinlogController; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; if (! defined('ROOT_PATH')) { diff --git a/server_collations.php b/server_collations.php index ccc61467d3..542779fdc5 100644 --- a/server_collations.php +++ b/server_collations.php @@ -8,7 +8,6 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Server\CollationsController; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; if (! defined('ROOT_PATH')) { diff --git a/server_databases.php b/server_databases.php index 0d60a20429..a81b278e34 100644 --- a/server_databases.php +++ b/server_databases.php @@ -10,9 +10,7 @@ declare(strict_types=1); use PhpMyAdmin\CheckUserPrivileges; use PhpMyAdmin\Controllers\Server\DatabasesController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; -use Symfony\Component\DependencyInjection\ContainerInterface; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); diff --git a/server_engines.php b/server_engines.php index 18bc179e82..c930d80f5b 100644 --- a/server_engines.php +++ b/server_engines.php @@ -8,7 +8,6 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Server\EnginesController; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; if (! defined('ROOT_PATH')) { diff --git a/server_plugins.php b/server_plugins.php index 72b773c8b1..b8391e971f 100644 --- a/server_plugins.php +++ b/server_plugins.php @@ -8,7 +8,6 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Server\PluginsController; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; if (! defined('ROOT_PATH')) { diff --git a/server_privileges.php b/server_privileges.php index 7001abf483..ac540a3fff 100644 --- a/server_privileges.php +++ b/server_privileges.php @@ -10,7 +10,6 @@ declare(strict_types=1); use PhpMyAdmin\CheckUserPrivileges; use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Message; use PhpMyAdmin\Relation; use PhpMyAdmin\RelationCleanup; diff --git a/server_replication.php b/server_replication.php index 419eb2091c..e9572c2aca 100644 --- a/server_replication.php +++ b/server_replication.php @@ -9,7 +9,6 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Server\ReplicationController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\ReplicationGui; use PhpMyAdmin\Response; diff --git a/server_sql.php b/server_sql.php index 6cb7cde515..5cae456c93 100644 --- a/server_sql.php +++ b/server_sql.php @@ -9,7 +9,6 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Server\SqlController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; use PhpMyAdmin\SqlQueryForm; diff --git a/server_status.php b/server_status.php index e90af13bef..c1260e0c0f 100644 --- a/server_status.php +++ b/server_status.php @@ -9,7 +9,6 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Server\Status\StatusController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\ReplicationGui; use PhpMyAdmin\Response; diff --git a/server_status_advisor.php b/server_status_advisor.php index f29fda63b5..f9482ea196 100644 --- a/server_status_advisor.php +++ b/server_status_advisor.php @@ -9,9 +9,7 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Server\Status\AdvisorController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; -use PhpMyAdmin\Server\Status\Data; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); diff --git a/server_status_monitor.php b/server_status_monitor.php index 28fe96a21d..61cd70e4bf 100644 --- a/server_status_monitor.php +++ b/server_status_monitor.php @@ -9,10 +9,7 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Server\Status\MonitorController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; -use PhpMyAdmin\Server\Status\Data; -use PhpMyAdmin\Server\Status\Monitor; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); diff --git a/server_status_processes.php b/server_status_processes.php index bc02251d11..2ddd7490e5 100644 --- a/server_status_processes.php +++ b/server_status_processes.php @@ -9,9 +9,7 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Server\Status\ProcessesController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; -use PhpMyAdmin\Server\Status\Data; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); diff --git a/server_status_queries.php b/server_status_queries.php index c15b57a9fd..a3b056f252 100644 --- a/server_status_queries.php +++ b/server_status_queries.php @@ -9,9 +9,7 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Server\Status\QueriesController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; -use PhpMyAdmin\Server\Status\Data; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); diff --git a/server_status_variables.php b/server_status_variables.php index 6d54a2b3c7..9ed7a3301f 100644 --- a/server_status_variables.php +++ b/server_status_variables.php @@ -9,9 +9,7 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Server\Status\VariablesController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; -use PhpMyAdmin\Server\Status\Data; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); diff --git a/server_user_groups.php b/server_user_groups.php index ffe962ee3b..581980261a 100644 --- a/server_user_groups.php +++ b/server_user_groups.php @@ -8,7 +8,6 @@ declare(strict_types=1); use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Relation; use PhpMyAdmin\Response; use PhpMyAdmin\Server\UserGroups; diff --git a/server_variables.php b/server_variables.php index 5fce620480..c842484e38 100644 --- a/server_variables.php +++ b/server_variables.php @@ -8,7 +8,6 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Server\VariablesController; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; if (! defined('ROOT_PATH')) { diff --git a/transformation_overview.php b/transformation_overview.php index 9558b9c47c..d8241c9871 100644 --- a/transformation_overview.php +++ b/transformation_overview.php @@ -11,7 +11,6 @@ use PhpMyAdmin\Controllers\TransformationOverviewController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; -use PhpMyAdmin\Transformations; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); diff --git a/transformation_wrapper.php b/transformation_wrapper.php index 904071ad98..a9746f30fa 100644 --- a/transformation_wrapper.php +++ b/transformation_wrapper.php @@ -9,7 +9,6 @@ declare(strict_types=1); use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Relation; use PhpMyAdmin\Response; use PhpMyAdmin\Transformations; diff --git a/view_operations.php b/view_operations.php index a752542b44..2933652304 100644 --- a/view_operations.php +++ b/view_operations.php @@ -8,7 +8,6 @@ declare(strict_types=1); use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Message; use PhpMyAdmin\Operations; use PhpMyAdmin\Relation; From 71520ed22224fdcb1a4004e33105af453ea16b61 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Fri, 24 May 2019 22:40:29 +0200 Subject: [PATCH 04/26] Continue to remove pMA Container Signed-off-by: Hugues Peccatte --- db_events.php | 6 ------ db_multi_table_query.php | 11 ----------- db_routines.php | 11 ----------- db_triggers.php | 11 ----------- services_controllers.yml | 6 +++--- tbl_addfield.php | 10 ++-------- 6 files changed, 5 insertions(+), 50 deletions(-) diff --git a/db_events.php b/db_events.php index 54240048bc..d0f05cff14 100644 --- a/db_events.php +++ b/db_events.php @@ -9,7 +9,6 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Database\EventsController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; use PhpMyAdmin\Url; use PhpMyAdmin\Util; @@ -18,13 +17,8 @@ if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } -global $db, $table; - require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ $response = $containerBuilder->get(Response::class); diff --git a/db_multi_table_query.php b/db_multi_table_query.php index 76d39059de..c624e85b1e 100644 --- a/db_multi_table_query.php +++ b/db_multi_table_query.php @@ -9,32 +9,21 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Database\MultiTableQueryController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; use PhpMyAdmin\Template; -use Symfony\Component\DependencyInjection\Definition; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } -global $db; - require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ $response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ $dbi = $containerBuilder->get(DatabaseInterface::class); -/** @var Definition $definition */ -$definition = $containerBuilder->getDefinition(MultiTableQueryController::class); -$definition->replaceArgument('db', $container->get('db')); - /** @var MultiTableQueryController $controller */ $controller = $containerBuilder->get(MultiTableQueryController::class); diff --git a/db_routines.php b/db_routines.php index 569f5000f2..dd7ad84810 100644 --- a/db_routines.php +++ b/db_routines.php @@ -10,23 +10,16 @@ declare(strict_types=1); use PhpMyAdmin\CheckUserPrivileges; use PhpMyAdmin\Controllers\Database\RoutinesController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; use PhpMyAdmin\Url; use PhpMyAdmin\Util; -use Symfony\Component\DependencyInjection\Definition; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } -global $db, $table; - require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ $response = $containerBuilder->get(Response::class); @@ -38,10 +31,6 @@ $checkUserPrivileges->getPrivileges(); $_PMA_RTE = 'RTN'; -/** @var Definition $definition */ -$definition = $containerBuilder->getDefinition(RoutinesController::class); -$definition->replaceArgument('db', $container->get('db')); - /** @var RoutinesController $controller */ $controller = $containerBuilder->get(RoutinesController::class); diff --git a/db_triggers.php b/db_triggers.php index 455177bfae..9fba076a0e 100644 --- a/db_triggers.php +++ b/db_triggers.php @@ -9,23 +9,16 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Database\TriggersController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; use PhpMyAdmin\Url; use PhpMyAdmin\Util; -use Symfony\Component\DependencyInjection\Definition; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } -global $db, $table; - require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ $response = $containerBuilder->get(Response::class); @@ -34,10 +27,6 @@ $dbi = $containerBuilder->get(DatabaseInterface::class); $_PMA_RTE = 'TRI'; -/** @var Definition $definition */ -$definition = $containerBuilder->getDefinition(TriggersController::class); -$definition->replaceArgument('db', $container->get('db')); - /** @var TriggersController $controller */ $controller = $containerBuilder->get(TriggersController::class); diff --git a/services_controllers.yml b/services_controllers.yml index edd38b707a..a3d629e1cf 100644 --- a/services_controllers.yml +++ b/services_controllers.yml @@ -49,7 +49,7 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null + db: '%db%' PhpMyAdmin\Controllers\Database\RoutinesController: class: 'PhpMyAdmin\Controllers\Database\RoutinesController' @@ -57,7 +57,7 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null + db: '%db%' PhpMyAdmin\Controllers\Database\SqlController: class: 'PhpMyAdmin\Controllers\Database\SqlController' @@ -83,7 +83,7 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null + db: '%db%' PhpMyAdmin\Controllers\HomeController: class: 'PhpMyAdmin\Controllers\HomeController' diff --git a/tbl_addfield.php b/tbl_addfield.php index 321e9f5eb4..4a83186f7a 100644 --- a/tbl_addfield.php +++ b/tbl_addfield.php @@ -9,7 +9,6 @@ declare(strict_types=1); use PhpMyAdmin\CreateAddField; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Message; use PhpMyAdmin\Response; use PhpMyAdmin\Transformations; @@ -20,18 +19,13 @@ if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } -global $cfg, $db, $table; - require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); $header = $response->getHeader(); $scripts = $header->getScripts(); From 6c613edfb2f80d6aa30a3d34a460b1721a9a0e8d Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Wed, 5 Jun 2019 21:44:04 +0200 Subject: [PATCH 05/26] Manage CentralColumns class as a service Define correctly the CentralColumnsController parameters Signed-off-by: Hugues Peccatte --- db_central_columns.php | 29 ++--------------------------- services.yml | 6 +++++- services_controllers.yml | 4 ++-- 3 files changed, 9 insertions(+), 30 deletions(-) diff --git a/db_central_columns.php b/db_central_columns.php index 3cf500c2b5..cfab1acf8d 100644 --- a/db_central_columns.php +++ b/db_central_columns.php @@ -14,41 +14,16 @@ if (! defined('ROOT_PATH')) { use PhpMyAdmin\CentralColumns; use PhpMyAdmin\Controllers\Database\CentralColumnsController; use PhpMyAdmin\Core; -use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Message; use PhpMyAdmin\Response; -use Symfony\Component\DependencyInjection\Definition; - -global $db; require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ $response = $containerBuilder->get(Response::class); -/** @var DatabaseInterface $dbi */ -$dbi = $containerBuilder->get(DatabaseInterface::class); - -$centralColumns = new CentralColumns($dbi); -/* Define dependencies for the concerned controller */ -$dependency_definitions = [ - 'db' => $container->get('db'), - 'centralColumns' => $centralColumns, -]; - -/** @var Definition $definition */ -$definition = $containerBuilder->getDefinition(CentralColumnsController::class); -array_map( - static function (string $parameterName, $value) use ($definition) { - $definition->replaceArgument($parameterName, $value); - }, - array_keys($dependency_definitions), - $dependency_definitions -); +/** @var CentralColumns $centralColumns */ +$centralColumns = $containerBuilder->get('central_columns'); /** @var CentralColumnsController $controller */ $controller = $containerBuilder->get(CentralColumnsController::class); diff --git a/services.yml b/services.yml index 7af8d3a2f1..fa8628b1fb 100644 --- a/services.yml +++ b/services.yml @@ -9,6 +9,10 @@ services: class: 'PhpMyAdmin\Config' arguments: [!php/const CONFIG_FILE] + central_columns: + class: '\PhpMyAdmin\CentralColumns' + arguments: ['@dbi'] + create_add_field: class: 'PhpMyAdmin\CreateAddField' arguments: ['@dbi'] @@ -105,4 +109,4 @@ services: PhpMyAdmin\Response: '@response' - PhpMyAdmin\DatabaseInterface: '@dbi' \ No newline at end of file + PhpMyAdmin\DatabaseInterface: '@dbi' diff --git a/services_controllers.yml b/services_controllers.yml index a3d629e1cf..60cfceb69d 100644 --- a/services_controllers.yml +++ b/services_controllers.yml @@ -22,8 +22,8 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null - centralColumns: null + db: '%db%' + centralColumns: '@central_columns' PhpMyAdmin\Controllers\Database\DataDictionaryController: class: 'PhpMyAdmin\Controllers\Database\DataDictionaryController' From 72237fee89a5cb2e263faed917acd64c9ac9190a Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Wed, 5 Jun 2019 21:47:59 +0200 Subject: [PATCH 06/26] Define correctly the DataDictionaryController parameters Signed-off-by: Hugues Peccatte --- db_datadict.php | 22 ---------------------- services_controllers.yml | 2 +- 2 files changed, 1 insertion(+), 23 deletions(-) diff --git a/db_datadict.php b/db_datadict.php index f2802d5106..7f0f304fd7 100644 --- a/db_datadict.php +++ b/db_datadict.php @@ -8,42 +8,20 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Database\DataDictionaryController; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; use PhpMyAdmin\Util; -use Symfony\Component\DependencyInjection\Definition; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } -global $db; - require_once ROOT_PATH . 'libraries/common.inc.php'; Util::checkParameters(['db']); -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ $response = $containerBuilder->get(Response::class); -/* Define dependencies for the concerned controller */ -$dependency_definitions = [ - 'db' => $container->get('db'), -]; - -/** @var Definition $definition */ -$definition = $containerBuilder->getDefinition(DataDictionaryController::class); -array_map( - static function (string $parameterName, $value) use ($definition) { - $definition->replaceArgument($parameterName, $value); - }, - array_keys($dependency_definitions), - $dependency_definitions -); - /** @var DataDictionaryController $controller */ $controller = $containerBuilder->get(DataDictionaryController::class); diff --git a/services_controllers.yml b/services_controllers.yml index 60cfceb69d..bda8387310 100644 --- a/services_controllers.yml +++ b/services_controllers.yml @@ -31,7 +31,7 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null + db: '%db%' relation: '@relation' transformations: '@transformations' From 87f5f45e8e4a6d5541e2fe7a99086a5158fa0d33 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Wed, 5 Jun 2019 21:58:06 +0200 Subject: [PATCH 07/26] Define correctly the ChartController parameters Signed-off-by: Hugues Peccatte --- services_controllers.yml | 4 ++-- tbl_chart.php | 8 -------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/services_controllers.yml b/services_controllers.yml index bda8387310..8520260d67 100644 --- a/services_controllers.yml +++ b/services_controllers.yml @@ -206,8 +206,8 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null - table: null + db: '%db%' + table: '%table%' sql_query: null url_query: null cfg: null diff --git a/tbl_chart.php b/tbl_chart.php index eb21a4b4be..e7964461aa 100644 --- a/tbl_chart.php +++ b/tbl_chart.php @@ -8,8 +8,6 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Table\ChartController; -use PhpMyAdmin\Di\Container; -use PhpMyAdmin\Response; use Symfony\Component\DependencyInjection\Definition; if (! defined('ROOT_PATH')) { @@ -18,14 +16,8 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); -$container->alias('response', Response::class); - /* Define dependencies for the concerned controller */ $dependency_definitions = [ - 'db' => $container->get('db'), - 'table' => $container->get('table'), 'sql_query' => &$GLOBALS['sql_query'], 'url_query' => &$GLOBALS['url_query'], 'cfg' => &$GLOBALS['cfg'], From 5c790458a2ffa0605e6f4e690b999e7fcac3c4f7 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Wed, 5 Jun 2019 22:06:35 +0200 Subject: [PATCH 08/26] Remove old Container in tbl_create.php Signed-off-by: Hugues Peccatte --- tbl_create.php | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/tbl_create.php b/tbl_create.php index 14b7f09dc8..f6a41400d9 100644 --- a/tbl_create.php +++ b/tbl_create.php @@ -10,7 +10,6 @@ declare(strict_types=1); use PhpMyAdmin\Core; use PhpMyAdmin\CreateAddField; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; use PhpMyAdmin\Transformations; use PhpMyAdmin\Url; @@ -20,23 +19,19 @@ if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } -global $cfg, $db, $table; - require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); // Check parameters Util::checkParameters(['db']); -$transformations = new Transformations(); +/** @var Transformations $transformations */ +$transformations = $containerBuilder->get('transformations'); /* Check if database name is empty */ if (strlen($db) === 0) { From ac5a95ca84c4a5e01da0a5342abc3d2081e7b74b Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Wed, 5 Jun 2019 22:11:12 +0200 Subject: [PATCH 09/26] Define correctly the SearchController parameters Signed-off-by: Hugues Peccatte --- services_controllers.yml | 4 ++-- tbl_find_replace.php | 10 ---------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/services_controllers.yml b/services_controllers.yml index 8520260d67..d16cf8ffd0 100644 --- a/services_controllers.yml +++ b/services_controllers.yml @@ -258,8 +258,8 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null - table: null + db: '%db%' + table: '%table%' searchType: null url_query: null relation: '@relation' diff --git a/tbl_find_replace.php b/tbl_find_replace.php index 56ca32d2f0..04b3cfdd4d 100644 --- a/tbl_find_replace.php +++ b/tbl_find_replace.php @@ -10,27 +10,17 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Table\SearchController; -use PhpMyAdmin\Di\Container; -use PhpMyAdmin\Response; use Symfony\Component\DependencyInjection\Definition; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } -global $url_query; - require_once ROOT_PATH . 'libraries/common.inc.php'; require_once ROOT_PATH . 'libraries/tbl_common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); -$container->alias('response', Response::class); - /* Define dependencies for the concerned controller */ $dependency_definitions = [ - 'db' => $container->get('db'), - 'table' => $container->get('table'), 'searchType' => 'replace', 'url_query' => &$url_query, ]; From 8dc906e9239f076e28874cd3c6692ed0b3622d03 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Wed, 5 Jun 2019 22:19:19 +0200 Subject: [PATCH 10/26] Define correctly the Database\StructureController parameters Signed-off-by: Hugues Peccatte --- db_structure.php | 18 ------------------ services_controllers.yml | 2 +- 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/db_structure.php b/db_structure.php index 0da843bbaf..41dd1c47d2 100644 --- a/db_structure.php +++ b/db_structure.php @@ -10,14 +10,11 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Database\StructureController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Response; -use Symfony\Component\DependencyInjection\Definition; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } -global $db; - require_once ROOT_PATH . 'libraries/common.inc.php'; require_once ROOT_PATH . 'libraries/db_common.inc.php'; @@ -27,21 +24,6 @@ $response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ $dbi = $containerBuilder->get(DatabaseInterface::class); -/* Define dependencies for the concerned controller */ -$dependency_definitions = [ - 'db' => $db, -]; - -/** @var Definition $definition */ -$definition = $containerBuilder->getDefinition(StructureController::class); -array_map( - static function (string $parameterName, $value) use ($definition) { - $definition->replaceArgument($parameterName, $value); - }, - array_keys($dependency_definitions), - $dependency_definitions -); - /** @var StructureController $controller */ $controller = $containerBuilder->get(StructureController::class); diff --git a/services_controllers.yml b/services_controllers.yml index d16cf8ffd0..68f7a3d782 100644 --- a/services_controllers.yml +++ b/services_controllers.yml @@ -73,7 +73,7 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null + db: '%db%' relation: '@relation' replication: '@replication' From c68bedaa9ee56b72818747cbe109b714a4fe2fe6 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 9 Jun 2019 21:50:01 +0200 Subject: [PATCH 11/26] Add missing variables Signed-off-by: Hugues Peccatte --- db_central_columns.php | 3 +++ db_events.php | 6 ++++++ db_routines.php | 6 ++++++ db_triggers.php | 6 ++++++ tbl_addfield.php | 11 +++++++++++ tbl_create.php | 11 +++++++++++ tbl_find_replace.php | 3 +++ 7 files changed, 46 insertions(+) diff --git a/db_central_columns.php b/db_central_columns.php index cfab1acf8d..729b608d93 100644 --- a/db_central_columns.php +++ b/db_central_columns.php @@ -28,6 +28,9 @@ $centralColumns = $containerBuilder->get('central_columns'); /** @var CentralColumnsController $controller */ $controller = $containerBuilder->get(CentralColumnsController::class); +/** @var string $db */ +$db = $containerBuilder->getParameter('db'); + if (isset($_POST['edit_save'])) { echo $controller->editSave([ 'col_name' => $_POST['col_name'] ?? null, diff --git a/db_events.php b/db_events.php index d0f05cff14..7012492e1f 100644 --- a/db_events.php +++ b/db_events.php @@ -30,6 +30,12 @@ $_PMA_RTE = 'EVN'; /** @var EventsController $controller */ $controller = $containerBuilder->get(EventsController::class); +/** @var string $db */ +$db = $containerBuilder->getParameter('db'); + +/** @var string $table */ +$table = $containerBuilder->getParameter('table'); + if (! $response->isAjax()) { /** * Displays the header and tabs diff --git a/db_routines.php b/db_routines.php index dd7ad84810..b229af7265 100644 --- a/db_routines.php +++ b/db_routines.php @@ -26,6 +26,12 @@ $response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ $dbi = $containerBuilder->get(DatabaseInterface::class); +/** @var string $db */ +$db = $containerBuilder->getParameter('db'); + +/** @var string $table */ +$table = $containerBuilder->getParameter('table'); + $checkUserPrivileges = new CheckUserPrivileges($dbi); $checkUserPrivileges->getPrivileges(); diff --git a/db_triggers.php b/db_triggers.php index 9fba076a0e..3cf36db247 100644 --- a/db_triggers.php +++ b/db_triggers.php @@ -30,6 +30,12 @@ $_PMA_RTE = 'TRI'; /** @var TriggersController $controller */ $controller = $containerBuilder->get(TriggersController::class); +/** @var string $db */ +$db = $containerBuilder->getParameter('db'); + +/** @var string $table */ +$table = $containerBuilder->getParameter('table'); + if (! $response->isAjax()) { /** * Displays the header and tabs diff --git a/tbl_addfield.php b/tbl_addfield.php index 4a83186f7a..71e365cb43 100644 --- a/tbl_addfield.php +++ b/tbl_addfield.php @@ -7,6 +7,7 @@ */ declare(strict_types=1); +use PhpMyAdmin\Config; use PhpMyAdmin\CreateAddField; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Message; @@ -37,6 +38,16 @@ Util::checkParameters(['db', 'table']); /** @var Transformations $transformations */ $transformations = $containerBuilder->get('transformations'); +/** @var string $db */ +$db = $containerBuilder->getParameter('db'); + +/** @var string $table */ +$table = $containerBuilder->getParameter('table'); + +/** @var Config $config */ +$config = $containerBuilder->get('config'); +$cfg = $config->settings; + /** * Defines the url to return to in case of error in a sql statement */ diff --git a/tbl_create.php b/tbl_create.php index f6a41400d9..bceb375225 100644 --- a/tbl_create.php +++ b/tbl_create.php @@ -7,6 +7,7 @@ */ declare(strict_types=1); +use PhpMyAdmin\Config; use PhpMyAdmin\Core; use PhpMyAdmin\CreateAddField; use PhpMyAdmin\DatabaseInterface; @@ -33,6 +34,16 @@ Util::checkParameters(['db']); /** @var Transformations $transformations */ $transformations = $containerBuilder->get('transformations'); +/** @var string $db */ +$db = $containerBuilder->getParameter('db'); + +/** @var string $table */ +$table = $containerBuilder->getParameter('table'); + +/** @var Config $config */ +$config = $containerBuilder->get('config'); +$cfg = $config->settings; + /* Check if database name is empty */ if (strlen($db) === 0) { Util::mysqlDie( diff --git a/tbl_find_replace.php b/tbl_find_replace.php index 04b3cfdd4d..f6747470ca 100644 --- a/tbl_find_replace.php +++ b/tbl_find_replace.php @@ -16,6 +16,9 @@ if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } +/** @var string $url_query Overwritten in tbl_common.inc.php */ +$url_query = null; + require_once ROOT_PATH . 'libraries/common.inc.php'; require_once ROOT_PATH . 'libraries/tbl_common.inc.php'; From 65833928fa2f58fa39c03d98b8e4a90047ce825a Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 9 Jun 2019 21:54:05 +0200 Subject: [PATCH 12/26] Add CheckUserPrivileges as a service Signed-off-by: Hugues Peccatte --- db_routines.php | 3 ++- services.yml | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/db_routines.php b/db_routines.php index b229af7265..b344d5e29e 100644 --- a/db_routines.php +++ b/db_routines.php @@ -32,7 +32,8 @@ $db = $containerBuilder->getParameter('db'); /** @var string $table */ $table = $containerBuilder->getParameter('table'); -$checkUserPrivileges = new CheckUserPrivileges($dbi); +/** @var CheckUserPrivileges $checkUserPrivileges */ +$checkUserPrivileges = $containerBuilder->get('check_user_privileges'); $checkUserPrivileges->getPrivileges(); $_PMA_RTE = 'RTN'; diff --git a/services.yml b/services.yml index fa8628b1fb..10531c1b9f 100644 --- a/services.yml +++ b/services.yml @@ -13,6 +13,10 @@ services: class: '\PhpMyAdmin\CentralColumns' arguments: ['@dbi'] + check_user_privileges: + class: '\PhpMyAdmin\CheckUserPrivileges' + arguments: ['@dbi'] + create_add_field: class: 'PhpMyAdmin\CreateAddField' arguments: ['@dbi'] From 7e909f759f61446b5e78acf43b090785681c1e12 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 9 Jun 2019 21:57:01 +0200 Subject: [PATCH 13/26] Define correctly the Database\SqlController parameters Signed-off-by: Hugues Peccatte --- db_sql.php | 7 ------- services_controllers.yml | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/db_sql.php b/db_sql.php index 3e18e56fe5..84ce7b5be8 100644 --- a/db_sql.php +++ b/db_sql.php @@ -12,14 +12,11 @@ use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Di\Container; use PhpMyAdmin\Response; use PhpMyAdmin\SqlQueryForm; -use Symfony\Component\DependencyInjection\Definition; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } -global $db; - require_once ROOT_PATH . 'libraries/common.inc.php'; $container = Container::getDefaultContainer(); @@ -31,10 +28,6 @@ $response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ $dbi = $containerBuilder->get(DatabaseInterface::class); -/** @var Definition $definition */ -$definition = $containerBuilder->getDefinition(SqlController::class); -$definition->replaceArgument('db', $container->get('db')); - /** @var SqlController $controller */ $controller = $containerBuilder->get(SqlController::class); diff --git a/services_controllers.yml b/services_controllers.yml index 68f7a3d782..4a3445f73e 100644 --- a/services_controllers.yml +++ b/services_controllers.yml @@ -65,7 +65,7 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null + db: '%db%' PhpMyAdmin\Controllers\Database\StructureController: class: 'PhpMyAdmin\Controllers\Database\StructureController' From 92bf62d474a2253e7d3a667893e07eb861c7518c Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 9 Jun 2019 22:07:46 +0200 Subject: [PATCH 14/26] Define correctly the GisVisualizationController parameters Signed-off-by: Hugues Peccatte --- services_controllers.yml | 4 ++-- tbl_gis_visualization.php | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/services_controllers.yml b/services_controllers.yml index 4a3445f73e..a8a1a55cb2 100644 --- a/services_controllers.yml +++ b/services_controllers.yml @@ -218,8 +218,8 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null - table: null + db: '%db%' + table: '%table%' sql_query: null url_params: null goto: null diff --git a/tbl_gis_visualization.php b/tbl_gis_visualization.php index d58267c2ab..643b634d2f 100644 --- a/tbl_gis_visualization.php +++ b/tbl_gis_visualization.php @@ -25,8 +25,6 @@ $container->alias('response', Response::class); /* Define dependencies for the concerned controller */ $dependency_definitions = [ - 'db' => $container->get('db'), - 'table' => $container->get('table'), 'sql_query' => &$GLOBALS['sql_query'], 'url_params' => &$GLOBALS['url_params'], 'goto' => Util::getScriptNameForOption( From 553e3615c00f5049668b1f193281f7a758d15cb5 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 9 Jun 2019 22:09:25 +0200 Subject: [PATCH 15/26] Define correctly the Table\IndexesController parameters Signed-off-by: Hugues Peccatte --- services_controllers.yml | 4 ++-- tbl_indexes.php | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/services_controllers.yml b/services_controllers.yml index a8a1a55cb2..7b8d321237 100644 --- a/services_controllers.yml +++ b/services_controllers.yml @@ -232,8 +232,8 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null - table: null + db: '%db%' + table: '%table%' index: null PhpMyAdmin\Controllers\Table\RelationController: diff --git a/tbl_indexes.php b/tbl_indexes.php index 4ea846d97a..6fe5e76e35 100644 --- a/tbl_indexes.php +++ b/tbl_indexes.php @@ -47,8 +47,6 @@ if (isset($_POST['index'])) { /* Define dependencies for the concerned controller */ $dependency_definitions = [ - 'db' => $container->get('db'), - 'table' => $container->get('table'), 'index' => $index, ]; From 97faeb4420b5308ec27900f2915057e2104a3c2f Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 9 Jun 2019 22:11:07 +0200 Subject: [PATCH 16/26] Define correctly the Table\RelationController parameters Signed-off-by: Hugues Peccatte --- services_controllers.yml | 4 ++-- tbl_relation.php | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/services_controllers.yml b/services_controllers.yml index 7b8d321237..efad0241af 100644 --- a/services_controllers.yml +++ b/services_controllers.yml @@ -242,8 +242,8 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null - table: null + db: '%db%' + table: '%table%' options_array: null cfgRelation: null tbl_storage_engine: null diff --git a/tbl_relation.php b/tbl_relation.php index 851e55b7f7..ec1dbdea19 100644 --- a/tbl_relation.php +++ b/tbl_relation.php @@ -57,8 +57,6 @@ $upd_query = new Table($table, $db, $dbi); /* Define dependencies for the concerned controller */ $dependency_definitions = [ - 'db' => $container->get('db'), - 'table' => $container->get('table'), 'options_array' => $options_array, 'cfgRelation' => $cfgRelation, 'tbl_storage_engine' => $tbl_storage_engine, From 127c4831d8cedb6d8763649a716cebc4dbb14731 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 9 Jun 2019 22:12:49 +0200 Subject: [PATCH 17/26] Define correctly the Table\SqlController parameters Signed-off-by: Hugues Peccatte --- services_controllers.yml | 4 ++-- tbl_sql.php | 18 ------------------ 2 files changed, 2 insertions(+), 20 deletions(-) diff --git a/services_controllers.yml b/services_controllers.yml index efad0241af..e0b215eb0e 100644 --- a/services_controllers.yml +++ b/services_controllers.yml @@ -270,8 +270,8 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null - table: null + db: '%db%' + table: '%table%' PhpMyAdmin\Controllers\Table\StructureController: class: 'PhpMyAdmin\Controllers\Table\StructureController' diff --git a/tbl_sql.php b/tbl_sql.php index 45073968f7..25dd7f3786 100644 --- a/tbl_sql.php +++ b/tbl_sql.php @@ -18,8 +18,6 @@ if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } -global $db, $table; - require_once ROOT_PATH . 'libraries/common.inc.php'; $container = Container::getDefaultContainer(); @@ -31,22 +29,6 @@ $response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ $dbi = $containerBuilder->get(DatabaseInterface::class); -/* Define dependencies for the concerned controller */ -$dependency_definitions = [ - 'db' => $container->get('db'), - 'table' => $container->get('table'), -]; - -/** @var Definition $definition */ -$definition = $containerBuilder->getDefinition(SqlController::class); -array_map( - static function (string $parameterName, $value) use ($definition) { - $definition->replaceArgument($parameterName, $value); - }, - array_keys($dependency_definitions), - $dependency_definitions -); - /** @var SqlController $controller */ $controller = $containerBuilder->get(SqlController::class); From f1349666bd83c3ab2ecf1770e651720e8798a4b1 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 9 Jun 2019 22:16:45 +0200 Subject: [PATCH 18/26] Define correctly the Table\StructureController parameters Signed-off-by: Hugues Peccatte --- services_controllers.yml | 4 ++-- tbl_structure.php | 17 +++++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/services_controllers.yml b/services_controllers.yml index e0b215eb0e..2ce04dfadb 100644 --- a/services_controllers.yml +++ b/services_controllers.yml @@ -279,8 +279,8 @@ services: response: '@response' dbi: '@dbi' template: '@template' - db: null - table: null + db: '%db%' + table: '%table%' db_is_system_schema: null tbl_is_view: null tbl_storage_engine: null diff --git a/tbl_structure.php b/tbl_structure.php index 650353c72f..2c79d06553 100644 --- a/tbl_structure.php +++ b/tbl_structure.php @@ -18,7 +18,7 @@ if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } -global $db, $table, $db_is_system_schema, $tbl_is_view, $tbl_storage_engine; +global $db_is_system_schema, $tbl_is_view, $tbl_storage_engine; global $table_info_num_rows, $tbl_collation, $showtable; require_once ROOT_PATH . 'libraries/common.inc.php'; @@ -30,11 +30,14 @@ $container->alias('response', Response::class); /** @var DatabaseInterface $dbi */ $dbi = $container->get(DatabaseInterface::class); -$dbi->selectDb($GLOBALS['db']); -$table_class_object = $dbi->getTable( - $GLOBALS['db'], - $GLOBALS['table'] -); +/** @var string $db */ +$db = $containerBuilder->getParameter('db'); + +/** @var string $table */ +$table = $containerBuilder->getParameter('table'); + +$dbi->selectDb($db); +$table_class_object = $dbi->getTable($db, $table); $reread_info = $table_class_object->getStatusInfo(null, true); $GLOBALS['showtable'] = $table_class_object->getStatusInfo(null, (isset($reread_info) && $reread_info ? true : false)); if ($table_class_object->isView()) { @@ -48,8 +51,6 @@ $tbl_collation = $table_class_object->getCollation(); $table_info_num_rows = $table_class_object->getNumRows(); /* Define dependencies for the concerned controller */ $dependency_definitions = [ - 'db' => $db, - 'table' => $table, 'db_is_system_schema' => $db_is_system_schema, 'tbl_is_view' => $tbl_is_view, 'tbl_storage_engine' => $tbl_storage_engine, From c301248ccdaac8b73615cc43cbbfb7e1c6ff8b7d Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Mon, 10 Jun 2019 22:05:13 +0200 Subject: [PATCH 19/26] Remove Di\Container in tbl_structure.php Signed-off-by: Hugues Peccatte --- tbl_structure.php | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/tbl_structure.php b/tbl_structure.php index 2c79d06553..294a390c1b 100644 --- a/tbl_structure.php +++ b/tbl_structure.php @@ -10,8 +10,6 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Table\StructureController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; -use PhpMyAdmin\Response; use Symfony\Component\DependencyInjection\Definition; if (! defined('ROOT_PATH')) { @@ -23,12 +21,8 @@ global $table_info_num_rows, $tbl_collation, $showtable; require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); -$container->alias('response', Response::class); - /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get('dbi'); /** @var string $db */ $db = $containerBuilder->getParameter('db'); From 8de3080d45b24f10f8e67f9033e19b55fe435e9e Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Mon, 10 Jun 2019 22:08:35 +0200 Subject: [PATCH 20/26] Remove Di\Container in tbl_get_field.php Signed-off-by: Hugues Peccatte --- tbl_get_field.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tbl_get_field.php b/tbl_get_field.php index 20a0bf2e9c..898c4d96ef 100644 --- a/tbl_get_field.php +++ b/tbl_get_field.php @@ -9,7 +9,6 @@ declare(strict_types=1); use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Mime; use PhpMyAdmin\Response; @@ -17,18 +16,19 @@ if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } -global $db, $table; - require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); + +/** @var string $db */ +$db = $containerBuilder->getParameter('db'); + +/** @var string $table */ +$table = $containerBuilder->getParameter('table'); $response->disable(); From 1c710ee4e09a8db3ba1bf7a6e0e6f2ba703bc1ef Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Mon, 10 Jun 2019 22:09:26 +0200 Subject: [PATCH 21/26] Remove Di\Container in tbl_gis_visualization.php Signed-off-by: Hugues Peccatte --- tbl_gis_visualization.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tbl_gis_visualization.php b/tbl_gis_visualization.php index 643b634d2f..2f08e14d30 100644 --- a/tbl_gis_visualization.php +++ b/tbl_gis_visualization.php @@ -19,10 +19,6 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); -$container->alias('response', Response::class); - /* Define dependencies for the concerned controller */ $dependency_definitions = [ 'sql_query' => &$GLOBALS['sql_query'], From 454eb60fbbf9f801cdba76dfcfc34643c04de5df Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Mon, 10 Jun 2019 22:12:45 +0200 Subject: [PATCH 22/26] Remove Di\Container in tbl_indexes.php Signed-off-by: Hugues Peccatte --- services_controllers.yml | 2 +- tbl_indexes.php | 33 ++++++++------------------------- 2 files changed, 9 insertions(+), 26 deletions(-) diff --git a/services_controllers.yml b/services_controllers.yml index 2ce04dfadb..59390491bf 100644 --- a/services_controllers.yml +++ b/services_controllers.yml @@ -234,7 +234,7 @@ services: template: '@template' db: '%db%' table: '%table%' - index: null + index: '%index%' PhpMyAdmin\Controllers\Table\RelationController: class: 'PhpMyAdmin\Controllers\Table\RelationController' diff --git a/tbl_indexes.php b/tbl_indexes.php index 6fe5e76e35..e9a6cda4b9 100644 --- a/tbl_indexes.php +++ b/tbl_indexes.php @@ -9,10 +9,7 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Table\IndexesController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Index; -use PhpMyAdmin\Response; -use Symfony\Component\DependencyInjection\Definition; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); @@ -20,16 +17,14 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); -$container->alias('response', Response::class); - -/* Define dependencies for the concerned controller */ -$db = $container->get('db'); -$table = $container->get('table'); - /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get('dbi'); + +/** @var string $db */ +$db = $containerBuilder->getParameter('db'); + +/** @var string $table */ +$table = $containerBuilder->getParameter('table'); if (! isset($_POST['create_edit_table'])) { include_once ROOT_PATH . 'libraries/tbl_common.inc.php'; @@ -46,19 +41,7 @@ if (isset($_POST['index'])) { } /* Define dependencies for the concerned controller */ -$dependency_definitions = [ - 'index' => $index, -]; - -/** @var Definition $definition */ -$definition = $containerBuilder->getDefinition(IndexesController::class); -array_map( - static function (string $parameterName, $value) use ($definition) { - $definition->replaceArgument($parameterName, $value); - }, - array_keys($dependency_definitions), - $dependency_definitions -); +$containerBuilder->setParameter('index', $index); /** @var IndexesController $controller */ $controller = $containerBuilder->get(IndexesController::class); From c46ddb8b16b1bbfa23b066d56b9f1f401ea4903a Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Mon, 10 Jun 2019 22:21:57 +0200 Subject: [PATCH 23/26] Remove Di\Container in tbl_operations.php Signed-off-by: Hugues Peccatte --- services.yml | 6 ++++++ tbl_operations.php | 24 ++++++++++++++---------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/services.yml b/services.yml index 10531c1b9f..174aa4db0a 100644 --- a/services.yml +++ b/services.yml @@ -70,6 +70,12 @@ services: transformations: '@transformations' template: '@template' + operations: + class: 'PhpMyAdmin\Operations' + arguments: + dbi: '@dbi' + relation: '@relation' + relation: class: 'PhpMyAdmin\Relation' arguments: ['@dbi', '@template'] diff --git a/tbl_operations.php b/tbl_operations.php index 1f9bcd8fa5..f8bb73ba09 100644 --- a/tbl_operations.php +++ b/tbl_operations.php @@ -9,7 +9,6 @@ declare(strict_types=1); use PhpMyAdmin\CheckUserPrivileges; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Index; use PhpMyAdmin\Message; use PhpMyAdmin\Operations; @@ -23,20 +22,24 @@ if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } -global $db, $table, $url_query; +global $url_query; require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); - /** @var Response $response */ -$response = $container->get(Response::class); +$response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); -$checkUserPrivileges = new CheckUserPrivileges($dbi); +/** @var string $db */ +$db = $containerBuilder->getParameter('db'); + +/** @var string $table */ +$table = $containerBuilder->getParameter('table'); + +/** @var CheckUserPrivileges $checkUserPrivileges */ +$checkUserPrivileges = $containerBuilder->get('check_user_privileges'); $checkUserPrivileges->getPrivileges(); // lower_case_table_names=1 `DB` becomes `db` @@ -64,10 +67,11 @@ $url_params['goto'] = $url_params['back'] = 'tbl_operations.php'; */ /** @var Relation $relation */ $relation = $containerBuilder->get('relation'); -$operations = new Operations($dbi, $relation); - $cfgRelation = $relation->getRelationsParam(); +/** @var Operations $operations */ +$operations = $containerBuilder->get('operations'); + // reselect current db (needed in some cases probably due to // the calling of PhpMyAdmin\Relation) $dbi->selectDb($db); From f5b858c8da10b8fc4494620efc18d03b5ac2ab4e Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Mon, 10 Jun 2019 22:25:23 +0200 Subject: [PATCH 24/26] Remove Di\Container in tbl_relation.php Signed-off-by: Hugues Peccatte --- tbl_relation.php | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/tbl_relation.php b/tbl_relation.php index ec1dbdea19..89da4964a5 100644 --- a/tbl_relation.php +++ b/tbl_relation.php @@ -17,9 +17,7 @@ declare(strict_types=1); use PhpMyAdmin\Controllers\Table\RelationController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Di\Container; use PhpMyAdmin\Relation; -use PhpMyAdmin\Response; use PhpMyAdmin\Table; use PhpMyAdmin\Util; use Symfony\Component\DependencyInjection\Definition; @@ -30,16 +28,12 @@ if (! defined('ROOT_PATH')) { require_once ROOT_PATH . 'libraries/common.inc.php'; -$container = Container::getDefaultContainer(); -$container->set(Response::class, Response::getInstance()); -$container->alias('response', Response::class); - /* Define dependencies for the concerned controller */ -$db = $container->get('db'); -$table = $container->get('table'); +$db = $containerBuilder->getParameter('db'); +$table = $containerBuilder->getParameter('table'); /** @var DatabaseInterface $dbi */ -$dbi = $container->get(DatabaseInterface::class); +$dbi = $containerBuilder->get(DatabaseInterface::class); $options_array = [ 'CASCADE' => 'CASCADE', From 1b5131863f555b96507d66213dcf4ec76509e129 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Mon, 10 Jun 2019 22:35:34 +0200 Subject: [PATCH 25/26] Get rid of old container in DatabaseInterface Signed-off-by: Hugues Peccatte --- libraries/classes/DatabaseInterface.php | 4 ---- libraries/common.inc.php | 6 ++++++ test/bootstrap-dist.php | 5 ++++- test/bootstrap-phpstan.php | 5 ++++- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/libraries/classes/DatabaseInterface.php b/libraries/classes/DatabaseInterface.php index b2553eb117..ba578ddccf 100644 --- a/libraries/classes/DatabaseInterface.php +++ b/libraries/classes/DatabaseInterface.php @@ -3166,10 +3166,6 @@ class DatabaseInterface } $dbi = new DatabaseInterface($extension); - $container = Container::getDefaultContainer(); - $container->set(DatabaseInterface::class, $dbi); - $container->alias('dbi', DatabaseInterface::class); - return $dbi; } } diff --git a/libraries/common.inc.php b/libraries/common.inc.php index 8ee67e78d3..8a845735d6 100644 --- a/libraries/common.inc.php +++ b/libraries/common.inc.php @@ -35,6 +35,7 @@ declare(strict_types=1); use PhpMyAdmin\Config; use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; +use PhpMyAdmin\Di\Container; use PhpMyAdmin\Di\Migration; use PhpMyAdmin\ErrorHandler; use PhpMyAdmin\LanguageManager; @@ -96,6 +97,9 @@ $loader->load('../services_controllers.yml'); /** @var Migration $diMigration */ $diMigration = $containerBuilder->get('di_migration'); +/** @var Container $oldContainer */ +$oldContainer = Container::getDefaultContainer(); + /** * Load gettext functions. */ @@ -329,6 +333,8 @@ if (! defined('PMA_MINIMUM_COMMON')) { */ $containerBuilder->set(DatabaseInterface::class, DatabaseInterface::load()); $containerBuilder->setAlias('dbi', DatabaseInterface::class); + $oldContainer->set(DatabaseInterface::class, $containerBuilder->get(DatabaseInterface::class)); + $oldContainer->alias('dbi', DatabaseInterface::class); // get LoginCookieValidity from preferences cache // no generic solution for loading preferences from cache as some settings diff --git a/test/bootstrap-dist.php b/test/bootstrap-dist.php index e8e64e53ca..1d3fd1f612 100644 --- a/test/bootstrap-dist.php +++ b/test/bootstrap-dist.php @@ -9,6 +9,7 @@ declare(strict_types=1); use PhpMyAdmin\Config; use PhpMyAdmin\DatabaseInterface; +use PhpMyAdmin\Di\Container; use PhpMyAdmin\LanguageManager; use PhpMyAdmin\MoTranslator\Loader; use PhpMyAdmin\Theme; @@ -79,7 +80,9 @@ define('PMA_MAJOR_VERSION', $GLOBALS['PMA_Config']->get('PMA_MAJOR_VERSION')); LanguageManager::getInstance()->getLanguage('en')->activate(); /* Load Database interface */ -DatabaseInterface::load(); +$oldContainer = Container::getDefaultContainer(); +$oldContainer->set(DatabaseInterface::class, DatabaseInterface::load()); +$oldContainer->alias('dbi', DatabaseInterface::class); // Set proxy information from env, if available $http_proxy = getenv('http_proxy'); diff --git a/test/bootstrap-phpstan.php b/test/bootstrap-phpstan.php index f1bd76bf53..dfe1147a1e 100644 --- a/test/bootstrap-phpstan.php +++ b/test/bootstrap-phpstan.php @@ -9,6 +9,7 @@ declare(strict_types=1); use PhpMyAdmin\Config; use PhpMyAdmin\DatabaseInterface; +use PhpMyAdmin\Di\Container; use PhpMyAdmin\MoTranslator\Loader; if (! defined('ROOT_PATH')) { @@ -38,4 +39,6 @@ $GLOBALS['PMA_Config']->enableBc();// Defines constants, phpstan:level=1 Loader::loadFunctions(); -DatabaseInterface::load(); +$oldContainer = Container::getDefaultContainer(); +$oldContainer->set(DatabaseInterface::class, DatabaseInterface::load()); +$oldContainer->alias('dbi', DatabaseInterface::class); From 39c439f08d7a1c17c3c9442679c3778938cfed4c Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sat, 15 Jun 2019 21:45:51 +0200 Subject: [PATCH 26/26] Fix phpstan errors Signed-off-by: Hugues Peccatte --- libraries/classes/Di/Migration.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/libraries/classes/Di/Migration.php b/libraries/classes/Di/Migration.php index 651e6a7a27..299061065f 100644 --- a/libraries/classes/Di/Migration.php +++ b/libraries/classes/Di/Migration.php @@ -25,6 +25,13 @@ class Migration /** @var ContainerBuilder */ protected $containerBuilder; + /** + * Get instance of this class + * + * @param ContainerBuilder|null $containerBuilder ContainerBuilder object that should be used to store the data + * + * @return Migration + */ public static function getInstance(?ContainerBuilder $containerBuilder = null): self { if (null !== self::$instance) { @@ -38,7 +45,12 @@ class Migration return self::$instance = new self($containerBuilder); } - public function __construct(ContainerBuilder $containerBuilder) + /** + * Migration constructor. + * + * @param ContainerBuilder $containerBuilder ContainerBuilder object that should be used to store the data + */ + protected function __construct(ContainerBuilder $containerBuilder) { $this->containerBuilder = $containerBuilder; } @@ -46,8 +58,8 @@ class Migration /** * Get the instance of the service * - * @param string $key - * @param $value + * @param string $key Key of data to store + * @param mixed $value Data to store * * @return void */