diff --git a/libraries/classes/Bookmark.php b/libraries/classes/Bookmark.php
index 29e7c86c27..88c199d029 100644
--- a/libraries/classes/Bookmark.php
+++ b/libraries/classes/Bookmark.php
@@ -7,6 +7,8 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
+
use function count;
use function is_array;
use function preg_match_all;
diff --git a/libraries/classes/Relation.php b/libraries/classes/ConfigStorage/Relation.php
similarity index 98%
rename from libraries/classes/Relation.php
rename to libraries/classes/ConfigStorage/Relation.php
index 9b8b2e2acd..5339e6e1cc 100644
--- a/libraries/classes/Relation.php
+++ b/libraries/classes/ConfigStorage/Relation.php
@@ -2,11 +2,18 @@
declare(strict_types=1);
-namespace PhpMyAdmin;
+namespace PhpMyAdmin\ConfigStorage;
+use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\InternalRelations;
+use PhpMyAdmin\RecentFavoriteTable;
use PhpMyAdmin\SqlParser\Parser;
use PhpMyAdmin\SqlParser\Statements\CreateStatement;
use PhpMyAdmin\SqlParser\Utils\Table as TableUtils;
+use PhpMyAdmin\Table;
+use PhpMyAdmin\Template;
+use PhpMyAdmin\Util;
+use PhpMyAdmin\Version;
use function __;
use function array_keys;
@@ -948,11 +955,11 @@ class Relation
/**
* Outputs dropdown with values of foreign fields
*
- * @param array[] $disp_row array of the displayed row
- * @param string $foreign_field the foreign field
- * @param string $foreign_display the foreign field to display
- * @param string $data the current data of the dropdown (field in row)
- * @param int $max maximum number of items in the dropdown
+ * @param array[] $disp_row array of the displayed row
+ * @param string $foreign_field the foreign field
+ * @param string $foreign_display the foreign field to display
+ * @param string $data the current data of the dropdown (field in row)
+ * @param int|null $max maximum number of items in the dropdown
*
* @return string the s
*
@@ -1060,7 +1067,7 @@ class Relation
* foreign_link: bool,
* the_total: mixed,
* foreign_display: string,
- * disp_row: ?list,
+ * disp_row: list|null,
* foreign_field: mixed
* }
*
@@ -1572,7 +1579,7 @@ class Relation
/**
* Returns default PMA table names and their create queries.
*
- * @return array table name, create query
+ * @return array table name, create query
*/
public function getDefaultPmaTableNames(array $tableNameReplacements): array
{
@@ -1668,7 +1675,7 @@ class Relation
$existingTables = $this->dbi->getTables($db, DatabaseInterface::CONNECT_CONTROL);
- /** @var array $tableNameReplacements */
+ /** @var array $tableNameReplacements */
$tableNameReplacements = [];
// Build a map of replacements between default table names and name built by the user
diff --git a/libraries/classes/RelationCleanup.php b/libraries/classes/ConfigStorage/RelationCleanup.php
similarity index 99%
rename from libraries/classes/RelationCleanup.php
rename to libraries/classes/ConfigStorage/RelationCleanup.php
index b36db45199..2227ce6222 100644
--- a/libraries/classes/RelationCleanup.php
+++ b/libraries/classes/ConfigStorage/RelationCleanup.php
@@ -1,14 +1,14 @@
relation->getRelationParameters();
- // reselect current db (needed in some cases probably due to
- // the calling of PhpMyAdmin\Relation)
+ /**
+ * Reselect current db (needed in some cases probably due to the calling of {@link Relation})
+ */
$this->dbi->selectDb($db);
$reread_info = $pma_table->getStatusInfo(null, false);
diff --git a/libraries/classes/Controllers/Table/RelationController.php b/libraries/classes/Controllers/Table/RelationController.php
index 00bfb7f392..fe9eda494e 100644
--- a/libraries/classes/Controllers/Table/RelationController.php
+++ b/libraries/classes/Controllers/Table/RelationController.php
@@ -4,12 +4,12 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Table;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationParameters;
use PhpMyAdmin\Core;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Index;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationParameters;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table;
use PhpMyAdmin\Template;
diff --git a/libraries/classes/Controllers/Table/ReplaceController.php b/libraries/classes/Controllers/Table/ReplaceController.php
index 77af877697..8bed054132 100644
--- a/libraries/classes/Controllers/Table/ReplaceController.php
+++ b/libraries/classes/Controllers/Table/ReplaceController.php
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Table;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\Database\SqlController as DatabaseSqlController;
use PhpMyAdmin\Controllers\Sql\SqlController;
use PhpMyAdmin\Controllers\Table\SqlController as TableSqlController;
@@ -14,7 +15,6 @@ use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\InsertEdit;
use PhpMyAdmin\Message;
use PhpMyAdmin\Plugins\IOTransformationsPlugin;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table;
use PhpMyAdmin\Template;
diff --git a/libraries/classes/Controllers/Table/SearchController.php b/libraries/classes/Controllers/Table/SearchController.php
index 7a145d37f7..0ef7fcc47a 100644
--- a/libraries/classes/Controllers/Table/SearchController.php
+++ b/libraries/classes/Controllers/Table/SearchController.php
@@ -4,12 +4,12 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Table;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\Core;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Operations;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationCleanup;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Sql;
use PhpMyAdmin\Table\Search;
diff --git a/libraries/classes/Controllers/Table/Structure/ChangeController.php b/libraries/classes/Controllers/Table/Structure/ChangeController.php
index d03505ca77..bb7c2cba21 100644
--- a/libraries/classes/Controllers/Table/Structure/ChangeController.php
+++ b/libraries/classes/Controllers/Table/Structure/ChangeController.php
@@ -5,10 +5,10 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Table\Structure;
use PhpMyAdmin\CheckUserPrivileges;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\Table\AbstractController;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Message;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table\ColumnsDefinition;
use PhpMyAdmin\Template;
diff --git a/libraries/classes/Controllers/Table/Structure/SaveController.php b/libraries/classes/Controllers/Table/Structure/SaveController.php
index 8b6d2fd606..95256489d0 100644
--- a/libraries/classes/Controllers/Table/Structure/SaveController.php
+++ b/libraries/classes/Controllers/Table/Structure/SaveController.php
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Table\Structure;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\Table\AbstractController;
use PhpMyAdmin\Controllers\Table\StructureController;
use PhpMyAdmin\Core;
@@ -11,7 +12,6 @@ use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Index;
use PhpMyAdmin\Message;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table;
use PhpMyAdmin\Template;
diff --git a/libraries/classes/Controllers/Table/StructureController.php b/libraries/classes/Controllers/Table/StructureController.php
index c630ad9be0..f69a4ac5d2 100644
--- a/libraries/classes/Controllers/Table/StructureController.php
+++ b/libraries/classes/Controllers/Table/StructureController.php
@@ -7,6 +7,9 @@ namespace PhpMyAdmin\Controllers\Table;
use PhpMyAdmin\Charsets;
use PhpMyAdmin\CheckUserPrivileges;
use PhpMyAdmin\Config\PageSettings;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationCleanup;
+use PhpMyAdmin\ConfigStorage\RelationParameters;
use PhpMyAdmin\CreateAddField;
use PhpMyAdmin\Database\CentralColumns;
use PhpMyAdmin\DatabaseInterface;
@@ -17,9 +20,6 @@ use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Index;
use PhpMyAdmin\Partitioning\Partition;
use PhpMyAdmin\Query\Utilities;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationCleanup;
-use PhpMyAdmin\RelationParameters;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\StorageEngine;
use PhpMyAdmin\Table;
diff --git a/libraries/classes/Controllers/Table/ZoomSearchController.php b/libraries/classes/Controllers/Table/ZoomSearchController.php
index 4ea0310caa..3c29ce1b39 100644
--- a/libraries/classes/Controllers/Table/ZoomSearchController.php
+++ b/libraries/classes/Controllers/Table/ZoomSearchController.php
@@ -4,10 +4,10 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Table;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Core;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table\Search;
use PhpMyAdmin\Template;
diff --git a/libraries/classes/Controllers/Transformation/WrapperController.php b/libraries/classes/Controllers/Transformation/WrapperController.php
index 268c0a8bf4..cd65a7dfa6 100644
--- a/libraries/classes/Controllers/Transformation/WrapperController.php
+++ b/libraries/classes/Controllers/Transformation/WrapperController.php
@@ -4,12 +4,12 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Transformation;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Core;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Image\ImageWrapper;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
use PhpMyAdmin\Transformations;
diff --git a/libraries/classes/Database/CentralColumns.php b/libraries/classes/Database/CentralColumns.php
index 5f3f69f251..ef103a778c 100644
--- a/libraries/classes/Database/CentralColumns.php
+++ b/libraries/classes/Database/CentralColumns.php
@@ -5,9 +5,9 @@ declare(strict_types=1);
namespace PhpMyAdmin\Database;
use PhpMyAdmin\Charsets;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Message;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Util;
diff --git a/libraries/classes/Database/Designer.php b/libraries/classes/Database/Designer.php
index 927053aafc..56e96e924d 100644
--- a/libraries/classes/Database/Designer.php
+++ b/libraries/classes/Database/Designer.php
@@ -4,11 +4,11 @@ declare(strict_types=1);
namespace PhpMyAdmin\Database;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Database\Designer\DesignerTable;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Message;
use PhpMyAdmin\Plugins;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Util;
use stdClass;
diff --git a/libraries/classes/Database/Designer/Common.php b/libraries/classes/Database/Designer/Common.php
index e0a5d9182d..8f5e36ed7f 100644
--- a/libraries/classes/Database/Designer/Common.php
+++ b/libraries/classes/Database/Designer/Common.php
@@ -4,10 +4,10 @@ declare(strict_types=1);
namespace PhpMyAdmin\Database\Designer;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Index;
use PhpMyAdmin\Query\Generator as QueryGenerator;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Table;
use PhpMyAdmin\Util;
use PhpMyAdmin\Utils\ForeignKey;
diff --git a/libraries/classes/Database/MultiTableQuery.php b/libraries/classes/Database/MultiTableQuery.php
index 7e59f06e1e..77284f2d2a 100644
--- a/libraries/classes/Database/MultiTableQuery.php
+++ b/libraries/classes/Database/MultiTableQuery.php
@@ -7,11 +7,11 @@ declare(strict_types=1);
namespace PhpMyAdmin\Database;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Operations;
use PhpMyAdmin\ParseAnalyze;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationCleanup;
use PhpMyAdmin\Sql;
use PhpMyAdmin\Template;
use PhpMyAdmin\Transformations;
diff --git a/libraries/classes/Database/Qbe.php b/libraries/classes/Database/Qbe.php
index ae5fba3a38..dc3606a5ee 100644
--- a/libraries/classes/Database/Qbe.php
+++ b/libraries/classes/Database/Qbe.php
@@ -7,10 +7,10 @@ declare(strict_types=1);
namespace PhpMyAdmin\Database;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Message;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\SavedSearches;
use PhpMyAdmin\Table;
use PhpMyAdmin\Template;
diff --git a/libraries/classes/DatabaseInterface.php b/libraries/classes/DatabaseInterface.php
index 623cd2d72e..7afcde1e26 100644
--- a/libraries/classes/DatabaseInterface.php
+++ b/libraries/classes/DatabaseInterface.php
@@ -7,6 +7,7 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Database\DatabaseList;
use PhpMyAdmin\Dbal\DatabaseName;
use PhpMyAdmin\Dbal\DbalInterface;
diff --git a/libraries/classes/Display/Results.php b/libraries/classes/Display/Results.php
index b268c250fb..6edb5cdd6e 100644
--- a/libraries/classes/Display/Results.php
+++ b/libraries/classes/Display/Results.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Display;
use PhpMyAdmin\Config\SpecialSchemaLinks;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Core;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\FieldMetadata;
@@ -16,7 +17,6 @@ use PhpMyAdmin\Plugins\Transformations\Output\Text_Plain_Json;
use PhpMyAdmin\Plugins\Transformations\Output\Text_Plain_Sql;
use PhpMyAdmin\Plugins\Transformations\Text_Plain_Link;
use PhpMyAdmin\Plugins\TransformationsPlugin;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Sanitize;
use PhpMyAdmin\Sql;
diff --git a/libraries/classes/ErrorReport.php b/libraries/classes/ErrorReport.php
index bb2661ac5a..b915bf1efe 100644
--- a/libraries/classes/ErrorReport.php
+++ b/libraries/classes/ErrorReport.php
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Utils\HttpRequest;
use function count;
diff --git a/libraries/classes/Export/Options.php b/libraries/classes/Export/Options.php
index fef589c85f..26aa38981d 100644
--- a/libraries/classes/Export/Options.php
+++ b/libraries/classes/Export/Options.php
@@ -4,12 +4,12 @@ declare(strict_types=1);
namespace PhpMyAdmin\Export;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Core;
use PhpMyAdmin\Encoding;
use PhpMyAdmin\Plugins;
use PhpMyAdmin\Plugins\ExportPlugin;
use PhpMyAdmin\Query\Utilities;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Table;
use PhpMyAdmin\Util;
diff --git a/libraries/classes/Footer.php b/libraries/classes/Footer.php
index bc1aa8184d..c676441544 100644
--- a/libraries/classes/Footer.php
+++ b/libraries/classes/Footer.php
@@ -7,6 +7,7 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
use Traversable;
use function basename;
diff --git a/libraries/classes/Header.php b/libraries/classes/Header.php
index 1b7385a29c..f4001fc609 100644
--- a/libraries/classes/Header.php
+++ b/libraries/classes/Header.php
@@ -7,6 +7,7 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Navigation\Navigation;
diff --git a/libraries/classes/InsertEdit.php b/libraries/classes/InsertEdit.php
index 2bb9e7b698..c66396b9ab 100644
--- a/libraries/classes/InsertEdit.php
+++ b/libraries/classes/InsertEdit.php
@@ -7,6 +7,7 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Plugins\TransformationsPlugin;
use PhpMyAdmin\Utils\Gis;
diff --git a/libraries/classes/Menu.php b/libraries/classes/Menu.php
index 47b58e0140..ad6f7e6dcf 100644
--- a/libraries/classes/Menu.php
+++ b/libraries/classes/Menu.php
@@ -7,6 +7,7 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Query\Utilities;
use PhpMyAdmin\Utils\SessionCache;
diff --git a/libraries/classes/Navigation/Navigation.php b/libraries/classes/Navigation/Navigation.php
index b01edcfa06..1028b37c62 100644
--- a/libraries/classes/Navigation/Navigation.php
+++ b/libraries/classes/Navigation/Navigation.php
@@ -9,8 +9,8 @@ declare(strict_types=1);
namespace PhpMyAdmin\Navigation;
use PhpMyAdmin\Config\PageSettings;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\DatabaseInterface;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Sanitize;
use PhpMyAdmin\Server\Select;
diff --git a/libraries/classes/Navigation/Nodes/Node.php b/libraries/classes/Navigation/Nodes/Node.php
index 9bc20d2eb3..48d095b12b 100644
--- a/libraries/classes/Navigation/Nodes/Node.php
+++ b/libraries/classes/Navigation/Nodes/Node.php
@@ -7,9 +7,9 @@ declare(strict_types=1);
namespace PhpMyAdmin\Navigation\Nodes;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Util;
use function __;
diff --git a/libraries/classes/Normalization.php b/libraries/classes/Normalization.php
index c3a08aed98..2cd580bc3c 100644
--- a/libraries/classes/Normalization.php
+++ b/libraries/classes/Normalization.php
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Query\Compatibility;
diff --git a/libraries/classes/Operations.php b/libraries/classes/Operations.php
index ae240c9c1f..164a1f702f 100644
--- a/libraries/classes/Operations.php
+++ b/libraries/classes/Operations.php
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Engines\Innodb;
use PhpMyAdmin\Partitioning\Partition;
use PhpMyAdmin\Plugins\Export\ExportSql;
diff --git a/libraries/classes/Plugins/Export/Helpers/Pdf.php b/libraries/classes/Plugins/Export/Helpers/Pdf.php
index 42881dea8a..574ded6e71 100644
--- a/libraries/classes/Plugins/Export/Helpers/Pdf.php
+++ b/libraries/classes/Plugins/Export/Helpers/Pdf.php
@@ -7,10 +7,10 @@ declare(strict_types=1);
namespace PhpMyAdmin\Plugins\Export\Helpers;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\FieldMetadata;
use PhpMyAdmin\Pdf as PdfLib;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Transformations;
use PhpMyAdmin\Util;
use TCPDF_STATIC;
diff --git a/libraries/classes/Plugins/ExportPlugin.php b/libraries/classes/Plugins/ExportPlugin.php
index 54f1011f8d..5c77114d06 100644
--- a/libraries/classes/Plugins/ExportPlugin.php
+++ b/libraries/classes/Plugins/ExportPlugin.php
@@ -7,10 +7,10 @@ declare(strict_types=1);
namespace PhpMyAdmin\Plugins;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Export;
use PhpMyAdmin\Properties\Plugins\ExportPluginProperties;
use PhpMyAdmin\Properties\Plugins\PluginPropertyItem;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Transformations;
use function stripos;
diff --git a/libraries/classes/Plugins/Schema/ExportRelationSchema.php b/libraries/classes/Plugins/Schema/ExportRelationSchema.php
index 7423717a52..211b6f4a9f 100644
--- a/libraries/classes/Plugins/Schema/ExportRelationSchema.php
+++ b/libraries/classes/Plugins/Schema/ExportRelationSchema.php
@@ -8,7 +8,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Plugins\Schema;
-use PhpMyAdmin\Relation;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Url;
use PhpMyAdmin\Util;
diff --git a/libraries/classes/Plugins/Schema/Pdf/Pdf.php b/libraries/classes/Plugins/Schema/Pdf/Pdf.php
index c374adab26..35fbb656ef 100644
--- a/libraries/classes/Plugins/Schema/Pdf/Pdf.php
+++ b/libraries/classes/Plugins/Schema/Pdf/Pdf.php
@@ -7,8 +7,8 @@ declare(strict_types=1);
namespace PhpMyAdmin\Plugins\Schema\Pdf;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Pdf as PdfLib;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Util;
use function __;
diff --git a/libraries/classes/Plugins/Schema/TableStats.php b/libraries/classes/Plugins/Schema/TableStats.php
index c904c51557..f995ac90d2 100644
--- a/libraries/classes/Plugins/Schema/TableStats.php
+++ b/libraries/classes/Plugins/Schema/TableStats.php
@@ -7,10 +7,10 @@ declare(strict_types=1);
namespace PhpMyAdmin\Plugins\Schema;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Font;
use PhpMyAdmin\Index;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Util;
use function array_flip;
diff --git a/libraries/classes/RecentFavoriteTable.php b/libraries/classes/RecentFavoriteTable.php
index 4860b78db0..68de0da8b5 100644
--- a/libraries/classes/RecentFavoriteTable.php
+++ b/libraries/classes/RecentFavoriteTable.php
@@ -7,6 +7,8 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
+
use function __;
use function array_key_exists;
use function array_merge;
diff --git a/libraries/classes/SavedSearches.php b/libraries/classes/SavedSearches.php
index 58a13f5e50..297f3a4f1b 100644
--- a/libraries/classes/SavedSearches.php
+++ b/libraries/classes/SavedSearches.php
@@ -7,6 +7,8 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
+
use function __;
use function count;
use function intval;
diff --git a/libraries/classes/Server/Privileges.php b/libraries/classes/Server/Privileges.php
index e1230afc60..f5f68679cf 100644
--- a/libraries/classes/Server/Privileges.php
+++ b/libraries/classes/Server/Privileges.php
@@ -8,13 +8,13 @@ declare(strict_types=1);
namespace PhpMyAdmin\Server;
use mysqli_stmt;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Html\MySQLDocumentation;
use PhpMyAdmin\Message;
use PhpMyAdmin\Query\Compatibility;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationCleanup;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
use PhpMyAdmin\Url;
diff --git a/libraries/classes/Server/UserGroups.php b/libraries/classes/Server/UserGroups.php
index 1ceb282341..2cc5dcc99c 100644
--- a/libraries/classes/Server/UserGroups.php
+++ b/libraries/classes/Server/UserGroups.php
@@ -7,8 +7,8 @@ declare(strict_types=1);
namespace PhpMyAdmin\Server;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Html\Generator;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Url;
use PhpMyAdmin\Util;
diff --git a/libraries/classes/Sql.php b/libraries/classes/Sql.php
index 581cc6fbbf..aa7a8fb01a 100644
--- a/libraries/classes/Sql.php
+++ b/libraries/classes/Sql.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\Display\Results as DisplayResults;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Html\MySQLDocumentation;
diff --git a/libraries/classes/SystemDatabase.php b/libraries/classes/SystemDatabase.php
index 0c7c938bf5..d1db755de1 100644
--- a/libraries/classes/SystemDatabase.php
+++ b/libraries/classes/SystemDatabase.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin;
use mysqli_result;
+use PhpMyAdmin\ConfigStorage\Relation;
use function count;
use function sprintf;
diff --git a/libraries/classes/Table.php b/libraries/classes/Table.php
index d4d9b0d227..314a089788 100644
--- a/libraries/classes/Table.php
+++ b/libraries/classes/Table.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationParameters;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Html\MySQLDocumentation;
use PhpMyAdmin\Plugins\Export\ExportSql;
diff --git a/libraries/classes/Table/ColumnsDefinition.php b/libraries/classes/Table/ColumnsDefinition.php
index 5d317c570f..4a35b79f30 100644
--- a/libraries/classes/Table/ColumnsDefinition.php
+++ b/libraries/classes/Table/ColumnsDefinition.php
@@ -5,11 +5,11 @@ declare(strict_types=1);
namespace PhpMyAdmin\Table;
use PhpMyAdmin\Charsets;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Partitioning\Partition;
use PhpMyAdmin\Partitioning\TablePartitionDefinition;
use PhpMyAdmin\Query\Compatibility;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\StorageEngine;
use PhpMyAdmin\Table;
use PhpMyAdmin\Transformations;
diff --git a/libraries/classes/Tracker.php b/libraries/classes/Tracker.php
index b6994ec359..8293acb547 100644
--- a/libraries/classes/Tracker.php
+++ b/libraries/classes/Tracker.php
@@ -7,6 +7,7 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Plugins\Export\ExportSql;
use PhpMyAdmin\SqlParser\Parser;
use PhpMyAdmin\SqlParser\Statements\AlterStatement;
diff --git a/libraries/classes/Tracking.php b/libraries/classes/Tracking.php
index 1dfae791c1..9b72959855 100644
--- a/libraries/classes/Tracking.php
+++ b/libraries/classes/Tracking.php
@@ -7,6 +7,7 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Html\Generator;
use function __;
diff --git a/libraries/classes/Transformations.php b/libraries/classes/Transformations.php
index e6c358824a..2d119875fd 100644
--- a/libraries/classes/Transformations.php
+++ b/libraries/classes/Transformations.php
@@ -17,6 +17,7 @@ declare(strict_types=1);
namespace PhpMyAdmin;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Plugins\TransformationsInterface;
use function array_shift;
diff --git a/libraries/classes/Twig/RelationExtension.php b/libraries/classes/Twig/RelationExtension.php
index d4007323f6..2d6e1a457a 100644
--- a/libraries/classes/Twig/RelationExtension.php
+++ b/libraries/classes/Twig/RelationExtension.php
@@ -4,7 +4,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Twig;
-use PhpMyAdmin\Relation;
+use PhpMyAdmin\ConfigStorage\Relation;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
diff --git a/libraries/classes/UserPreferences.php b/libraries/classes/UserPreferences.php
index bc1ddb9935..8e8d74517c 100644
--- a/libraries/classes/UserPreferences.php
+++ b/libraries/classes/UserPreferences.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin;
use PhpMyAdmin\Config\ConfigFile;
use PhpMyAdmin\Config\Forms\User\UserFormList;
+use PhpMyAdmin\ConfigStorage\Relation;
use function __;
use function array_flip;
diff --git a/libraries/services.php b/libraries/services.php
index 3f3a39ec98..53a1ca134d 100644
--- a/libraries/services.php
+++ b/libraries/services.php
@@ -2,6 +2,9 @@
declare(strict_types=1);
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationCleanup;
+
return [
'services' => [
'advisor' => [
@@ -126,14 +129,14 @@ return [
'arguments' => ['$dbi' => '@dbi'],
],
'relation' => [
- 'class' => PhpMyAdmin\Relation::class,
+ 'class' => Relation::class,
'arguments' => [
'@dbi',
'@template',
],
],
'relation_cleanup' => [
- 'class' => PhpMyAdmin\RelationCleanup::class,
+ 'class' => RelationCleanup::class,
'arguments' => [
'@dbi',
'@relation',
diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
index 5bb30110d9..25ef2a710c 100644
--- a/phpstan-baseline.neon
+++ b/phpstan-baseline.neon
@@ -855,6 +855,131 @@ parameters:
count: 1
path: libraries/classes/Config/Validator.php
+ -
+ message: "#^Do\\-while loop condition is always false\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:buildForeignDropdown\\(\\) has parameter \\$foreign with no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:checkChildForeignReferences\\(\\) has parameter \\$child_references_full with no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:checkChildForeignReferences\\(\\) has parameter \\$foreigners_full with no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:foreignDropdown\\(\\) has parameter \\$disp_row with no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:getChildReferences\\(\\) return type has no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:getComments\\(\\) return type has no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:getDbComments\\(\\) return type has no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:getDefaultPmaTableNames\\(\\) has parameter \\$tableNameReplacements with no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:getForeignData\\(\\) has parameter \\$foreigners with no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:getForeignData\\(\\) return type has no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:getForeigners\\(\\) return type has no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:getHistory\\(\\) return type has no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:getRelationsAndStatus\\(\\) return type has no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:getTables\\(\\) return type has no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:searchColumnInForeigners\\(\\) has parameter \\$foreigners with no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:searchColumnInForeigners\\(\\) return type has no value type specified in iterable type array\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Offset 'comment' does not exist on array\\|null\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Parameter \\#1 \\$foreigners of method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:searchColumnInForeigners\\(\\) expects array, array\\|true given\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Parameter \\#1 \\$list of class PhpMyAdmin\\\\SqlParser\\\\Parser constructor expects PhpMyAdmin\\\\SqlParser\\\\TokensList\\|PhpMyAdmin\\\\SqlParser\\\\UtfString\\|string\\|null, mixed given\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Parameter \\#1 \\$result of method PhpMyAdmin\\\\DatabaseInterface\\:\\:fetchAssoc\\(\\) expects object, mixed given\\.$#"
+ count: 3
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Parameter \\#1 \\$result of method PhpMyAdmin\\\\DatabaseInterface\\:\\:fetchRow\\(\\) expects object, mixed given\\.$#"
+ count: 2
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Parameter \\#1 \\$result of method PhpMyAdmin\\\\DatabaseInterface\\:\\:freeResult\\(\\) expects object, mixed given\\.$#"
+ count: 4
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Parameter \\#1 \\$result of method PhpMyAdmin\\\\DatabaseInterface\\:\\:numRows\\(\\) expects bool\\|object, mixed given\\.$#"
+ count: 4
+ path: libraries/classes/ConfigStorage/Relation.php
+
+ -
+ message: "#^Property PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:\\$dbi \\(PhpMyAdmin\\\\DatabaseInterface\\) does not accept PhpMyAdmin\\\\DatabaseInterface\\|null\\.$#"
+ count: 1
+ path: libraries/classes/ConfigStorage/Relation.php
+
-
message: "#^Parameter \\#1 \\$params of static method PhpMyAdmin\\\\Url\\:\\:getCommonRaw\\(\\) expects array\\, array\\ given\\.$#"
count: 1
@@ -5446,12 +5571,12 @@ parameters:
path: libraries/classes/InsertEdit.php
-
- message: "#^Parameter \\#2 \\$foreign_field of method PhpMyAdmin\\\\Relation\\:\\:foreignDropdown\\(\\) expects string, mixed given\\.$#"
+ message: "#^Parameter \\#2 \\$foreign_field of method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:foreignDropdown\\(\\) expects string, mixed given\\.$#"
count: 1
path: libraries/classes/InsertEdit.php
-
- message: "#^Parameter \\#4 \\$data of method PhpMyAdmin\\\\Relation\\:\\:foreignDropdown\\(\\) expects string, mixed given\\.$#"
+ message: "#^Parameter \\#4 \\$data of method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:foreignDropdown\\(\\) expects string, mixed given\\.$#"
count: 1
path: libraries/classes/InsertEdit.php
@@ -7490,131 +7615,6 @@ parameters:
count: 1
path: libraries/classes/RecentFavoriteTable.php
- -
- message: "#^Do\\-while loop condition is always false\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:buildForeignDropdown\\(\\) has parameter \\$foreign with no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:checkChildForeignReferences\\(\\) has parameter \\$child_references_full with no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:checkChildForeignReferences\\(\\) has parameter \\$foreigners_full with no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:foreignDropdown\\(\\) has parameter \\$disp_row with no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:getChildReferences\\(\\) return type has no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:getComments\\(\\) return type has no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:getDbComments\\(\\) return type has no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:getDefaultPmaTableNames\\(\\) has parameter \\$tableNameReplacements with no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:getForeignData\\(\\) has parameter \\$foreigners with no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:getForeignData\\(\\) return type has no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:getForeigners\\(\\) return type has no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:getHistory\\(\\) return type has no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:getRelationsAndStatus\\(\\) return type has no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:getTables\\(\\) return type has no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:searchColumnInForeigners\\(\\) has parameter \\$foreigners with no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Relation\\:\\:searchColumnInForeigners\\(\\) return type has no value type specified in iterable type array\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Offset 'comment' does not exist on array\\|null\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Parameter \\#1 \\$foreigners of method PhpMyAdmin\\\\Relation\\:\\:searchColumnInForeigners\\(\\) expects array, array\\|true given\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Parameter \\#1 \\$list of class PhpMyAdmin\\\\SqlParser\\\\Parser constructor expects PhpMyAdmin\\\\SqlParser\\\\TokensList\\|PhpMyAdmin\\\\SqlParser\\\\UtfString\\|string\\|null, mixed given\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
- -
- message: "#^Parameter \\#1 \\$result of method PhpMyAdmin\\\\DatabaseInterface\\:\\:fetchAssoc\\(\\) expects object, mixed given\\.$#"
- count: 3
- path: libraries/classes/Relation.php
-
- -
- message: "#^Parameter \\#1 \\$result of method PhpMyAdmin\\\\DatabaseInterface\\:\\:fetchRow\\(\\) expects object, mixed given\\.$#"
- count: 2
- path: libraries/classes/Relation.php
-
- -
- message: "#^Parameter \\#1 \\$result of method PhpMyAdmin\\\\DatabaseInterface\\:\\:freeResult\\(\\) expects object, mixed given\\.$#"
- count: 4
- path: libraries/classes/Relation.php
-
- -
- message: "#^Parameter \\#1 \\$result of method PhpMyAdmin\\\\DatabaseInterface\\:\\:numRows\\(\\) expects bool\\|object, mixed given\\.$#"
- count: 4
- path: libraries/classes/Relation.php
-
- -
- message: "#^Property PhpMyAdmin\\\\Relation\\:\\:\\$dbi \\(PhpMyAdmin\\\\DatabaseInterface\\) does not accept PhpMyAdmin\\\\DatabaseInterface\\|null\\.$#"
- count: 1
- path: libraries/classes/Relation.php
-
-
message: "#^Method PhpMyAdmin\\\\Replication\\:\\:slaveChangeMaster\\(\\) has parameter \\$pos with no value type specified in iterable type array\\.$#"
count: 1
@@ -8666,7 +8666,7 @@ parameters:
path: libraries/classes/Sql.php
-
- message: "#^Parameter \\#2 \\$foreign_field of method PhpMyAdmin\\\\Relation\\:\\:foreignDropdown\\(\\) expects string, mixed given\\.$#"
+ message: "#^Parameter \\#2 \\$foreign_field of method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:foreignDropdown\\(\\) expects string, mixed given\\.$#"
count: 1
path: libraries/classes/Sql.php
@@ -9915,6 +9915,21 @@ parameters:
count: 1
path: test/classes/Config/SettingsTest.php
+ -
+ message: "#^Method PhpMyAdmin\\\\Tests\\\\ConfigStorage\\\\RelationParametersTest\\:\\:providerForTestRelationParameters\\(\\) return type has no value type specified in iterable type array\\.$#"
+ count: 1
+ path: test/classes/ConfigStorage/RelationParametersTest.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\Tests\\\\ConfigStorage\\\\RelationParametersTest\\:\\:testRelationParameters\\(\\) has parameter \\$expected with no value type specified in iterable type array\\.$#"
+ count: 1
+ path: test/classes/ConfigStorage/RelationParametersTest.php
+
+ -
+ message: "#^Method PhpMyAdmin\\\\Tests\\\\ConfigStorage\\\\RelationParametersTest\\:\\:testRelationParameters\\(\\) has parameter \\$params with no value type specified in iterable type array\\.$#"
+ count: 1
+ path: test/classes/ConfigStorage/RelationParametersTest.php
+
-
message: "#^Method PhpMyAdmin\\\\Tests\\\\ConfigTest\\:\\:configPaths\\(\\) return type has no value type specified in iterable type array\\.$#"
count: 1
@@ -11430,21 +11445,6 @@ parameters:
count: 1
path: test/classes/Properties/Plugins/ExportPluginPropertiesTest.php
- -
- message: "#^Method PhpMyAdmin\\\\Tests\\\\RelationParametersTest\\:\\:providerForTestRelationParameters\\(\\) return type has no value type specified in iterable type array\\.$#"
- count: 1
- path: test/classes/RelationParametersTest.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Tests\\\\RelationParametersTest\\:\\:testRelationParameters\\(\\) has parameter \\$expected with no value type specified in iterable type array\\.$#"
- count: 1
- path: test/classes/RelationParametersTest.php
-
- -
- message: "#^Method PhpMyAdmin\\\\Tests\\\\RelationParametersTest\\:\\:testRelationParameters\\(\\) has parameter \\$params with no value type specified in iterable type array\\.$#"
- count: 1
- path: test/classes/RelationParametersTest.php
-
-
message: "#^Method PhpMyAdmin\\\\Tests\\\\SanitizeTest\\:\\:dataProviderCheckLinks\\(\\) return type has no value type specified in iterable type array\\.$#"
count: 1
diff --git a/psalm-baseline.xml b/psalm-baseline.xml
index 0fdc862369..7e69f44551 100644
--- a/psalm-baseline.xml
+++ b/psalm-baseline.xml
@@ -861,6 +861,168 @@
$uv[$i]
+
+
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['sql_history']
+ $_SESSION['sql_history']
+ $_SESSION['sql_history']
+ $child_references
+ $child_references
+ $column['DATA_TYPE']
+ $columns['table_name']
+ $columns['table_schema']
+ $com_rs
+ $com_rs
+ $com_rs
+ $com_rs
+ $com_rs
+ $disp
+ $disp
+ $disp
+ $foreign[$field]
+ $foreign_db
+ $foreign_db
+ $foreign_field
+ $foreign_field
+ $foreign_table
+ $foreign_table
+ $one_key['index_list']
+ $result
+ $result
+ $row[1]
+ $show_create_table
+ $tableNameReplacements[$tableName]
+ $tableRes
+ $tableRes
+ $tablesRows
+
+
+ uksort($foreign, 'strnatcasecmp')
+ usort($tables, 'strnatcasecmp')
+
+
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['relation'][$GLOBALS['server']]
+ $column['COLUMN_NAME']
+ $column['DATA_TYPE']
+ $columns['table_name']
+ $columns['table_schema']
+ $one_key['constraint']
+ $one_key['index_list']
+ $one_key['on_delete']
+ $one_key['on_update']
+ $one_key['ref_db_name']
+ $one_key['ref_index_list']
+ $one_key['ref_table_name']
+
+
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['sql_history'][]
+ $_SESSION['tmpval']['favoriteTables']
+ $_SESSION['tmpval']['recentTables']
+
+
+ $comments[$column['Field']]
+ $comments[$row['db_name']]
+ $foreign[$field]
+ $foreign[$field]
+ $foreign[$key]
+ $one_key['ref_index_list'][$column_index]
+
+
+ $child_references
+ $column
+ $column_index
+ $columns
+ $com_rs
+ $com_rs
+ $comments[$column['Field']]
+ $comments[$row['db_name']]
+ $disp
+ $field
+ $foreign[$field]
+ $foreign[$key]
+ $foreign_db
+ $foreign_field
+ $foreign_table
+ $foreigner['constraint']
+ $foreigner['foreign_db']
+ $foreigner['foreign_field']
+ $foreigner['foreign_table']
+ $foreigner['on_delete']
+ $foreigner['on_update']
+ $foreigners[$column]
+ $foreigners['foreign_keys_data']
+ $key
+ $max_time
+ $one_key
+ $relations
+ $result
+ $result
+ $result
+ $result
+ $show_create_table
+ $tableRes
+ $tablesRows
+ $tables[]
+ $the_total
+ $the_total
+ $value
+ $value
+
+
+ array|false
+ string|false
+
+
+ $max_time
+
+
+ $column['COLUMN_NAME']
+ $foreigners[$column]
+ $row['display_field']
+
+
+ $GLOBALS['cfg']['Server']['column_info']
+ $GLOBALS['cfg']['Server']['column_info']
+ $GLOBALS['cfg']['Server']['pmadb']
+ $GLOBALS['cfg']['Server']['pmadb']
+ $GLOBALS['cfg']['Server']['pmadb']
+
+
+ $com_rs
+ $com_rs
+ $foreigners
+ $result
+
+
+ $row['comment']
+
+
+ $dbi
+
+
+ (int) $GLOBALS['cfg']['LimitChars']
+ (string) $GLOBALS['cfg']['ForeignKeyDropdownOrder'][0]
+ (string) $GLOBALS['cfg']['ForeignKeyDropdownOrder'][0]
+ (string) $GLOBALS['cfg']['ForeignKeyDropdownOrder'][1]
+ (string) $GLOBALS['cfg']['ForeignKeyDropdownOrder'][1]
+ (string) $table[1]
+
+
+ (string) $data
+ (string) $db
+ (string) $table
+
+
+ is_array($GLOBALS['cfg']['ForeignKeyDropdownOrder'])
+ is_scalar($GLOBALS['cfg']['ForeignKeyDropdownOrder'][0])
+ is_scalar($GLOBALS['cfg']['ForeignKeyDropdownOrder'][1])
+
+
$isAjax
@@ -12304,168 +12466,6 @@
$this->getPmaTable()
-
-
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['sql_history']
- $_SESSION['sql_history']
- $_SESSION['sql_history']
- $child_references
- $child_references
- $column['DATA_TYPE']
- $columns['table_name']
- $columns['table_schema']
- $com_rs
- $com_rs
- $com_rs
- $com_rs
- $com_rs
- $disp
- $disp
- $disp
- $foreign[$field]
- $foreign_db
- $foreign_db
- $foreign_field
- $foreign_field
- $foreign_table
- $foreign_table
- $one_key['index_list']
- $result
- $result
- $row[1]
- $show_create_table
- $tableNameReplacements[$tableName]
- $tableRes
- $tableRes
- $tablesRows
-
-
- uksort($foreign, 'strnatcasecmp')
- usort($tables, 'strnatcasecmp')
-
-
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['relation'][$GLOBALS['server']]
- $column['COLUMN_NAME']
- $column['DATA_TYPE']
- $columns['table_name']
- $columns['table_schema']
- $one_key['constraint']
- $one_key['index_list']
- $one_key['on_delete']
- $one_key['on_update']
- $one_key['ref_db_name']
- $one_key['ref_index_list']
- $one_key['ref_table_name']
-
-
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['sql_history'][]
- $_SESSION['tmpval']['favoriteTables']
- $_SESSION['tmpval']['recentTables']
-
-
- $comments[$column['Field']]
- $comments[$row['db_name']]
- $foreign[$field]
- $foreign[$field]
- $foreign[$key]
- $one_key['ref_index_list'][$column_index]
-
-
- $child_references
- $column
- $column_index
- $columns
- $com_rs
- $com_rs
- $comments[$column['Field']]
- $comments[$row['db_name']]
- $disp
- $field
- $foreign[$field]
- $foreign[$key]
- $foreign_db
- $foreign_field
- $foreign_table
- $foreigner['constraint']
- $foreigner['foreign_db']
- $foreigner['foreign_field']
- $foreigner['foreign_table']
- $foreigner['on_delete']
- $foreigner['on_update']
- $foreigners[$column]
- $foreigners['foreign_keys_data']
- $key
- $max_time
- $one_key
- $relations
- $result
- $result
- $result
- $result
- $show_create_table
- $tableRes
- $tablesRows
- $tables[]
- $the_total
- $the_total
- $value
- $value
-
-
- array|false
- string|false
-
-
- $max_time
-
-
- $column['COLUMN_NAME']
- $foreigners[$column]
- $row['display_field']
-
-
- $GLOBALS['cfg']['Server']['column_info']
- $GLOBALS['cfg']['Server']['column_info']
- $GLOBALS['cfg']['Server']['pmadb']
- $GLOBALS['cfg']['Server']['pmadb']
- $GLOBALS['cfg']['Server']['pmadb']
-
-
- $com_rs
- $com_rs
- $foreigners
- $result
-
-
- $row['comment']
-
-
- $dbi
-
-
- (int) $GLOBALS['cfg']['LimitChars']
- (string) $GLOBALS['cfg']['ForeignKeyDropdownOrder'][0]
- (string) $GLOBALS['cfg']['ForeignKeyDropdownOrder'][0]
- (string) $GLOBALS['cfg']['ForeignKeyDropdownOrder'][1]
- (string) $GLOBALS['cfg']['ForeignKeyDropdownOrder'][1]
- (string) $table[1]
-
-
- (string) $data
- (string) $db
- (string) $table
-
-
- is_array($GLOBALS['cfg']['ForeignKeyDropdownOrder'])
- is_scalar($GLOBALS['cfg']['ForeignKeyDropdownOrder'][0])
- is_scalar($GLOBALS['cfg']['ForeignKeyDropdownOrder'][1])
-
-
$output
@@ -15390,6 +15390,92 @@
$this->sessionID
+
+
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['relation'][$GLOBALS['server']]
+
+
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['relation'][$GLOBALS['server']]
+
+
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['relation'][$GLOBALS['server']]
+
+
+ method
+ method
+ method
+ method
+ method
+ method
+ method
+ method
+ withConsecutive
+ withConsecutive
+ withConsecutive
+ withConsecutive
+
+
+ expects
+ expects
+ expects
+ expects
+ expects
+ expects
+ expects
+ expects
+
+
+
+
+ assertSame
+
+
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['relation'][$GLOBALS['server']]
+ $_SESSION['relation'][$GLOBALS['server']]
+
+
+ $_SESSION
+ $_SESSION
+ $_SESSION
+ $_SESSION
+ $_SESSION
+ $_SESSION
+ $_SESSION
+ $_SESSION
+
+
+ $_SESSION['relation'][$GLOBALS['server']]['version']
+ $_SESSION['relation'][$GLOBALS['server']]['version']
+ $_SESSION['relation'][$GLOBALS['server']]['version']
+
+
+ $_SESSION['relation'][$GLOBALS['server']]
+
+
+ assertSame
+ assertSame
+ assertSame
+
+
+ assertSame
+ assertSame
+
+
+ assertSame
+ assertSame
+ assertSame
+
+
$v
@@ -16747,92 +16833,6 @@
getGroup
-
-
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['relation'][$GLOBALS['server']]
-
-
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['relation'][$GLOBALS['server']]
-
-
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['relation'][$GLOBALS['server']]
-
-
- method
- method
- method
- method
- method
- method
- method
- method
- withConsecutive
- withConsecutive
- withConsecutive
- withConsecutive
-
-
- expects
- expects
- expects
- expects
- expects
- expects
- expects
- expects
-
-
-
-
- assertSame
-
-
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['relation'][$GLOBALS['server']]
- $_SESSION['relation'][$GLOBALS['server']]
-
-
- $_SESSION
- $_SESSION
- $_SESSION
- $_SESSION
- $_SESSION
- $_SESSION
- $_SESSION
- $_SESSION
-
-
- $_SESSION['relation'][$GLOBALS['server']]['version']
- $_SESSION['relation'][$GLOBALS['server']]['version']
- $_SESSION['relation'][$GLOBALS['server']]['version']
-
-
- $_SESSION['relation'][$GLOBALS['server']]
-
-
- assertSame
- assertSame
- assertSame
-
-
- assertSame
- assertSame
-
-
- assertSame
- assertSame
- assertSame
-
-
array
diff --git a/test/classes/RelationCleanupTest.php b/test/classes/ConfigStorage/RelationCleanupTest.php
similarity index 98%
rename from test/classes/RelationCleanupTest.php
rename to test/classes/ConfigStorage/RelationCleanupTest.php
index 02c38cf0f3..d00e471dd5 100644
--- a/test/classes/RelationCleanupTest.php
+++ b/test/classes/ConfigStorage/RelationCleanupTest.php
@@ -2,17 +2,18 @@
declare(strict_types=1);
-namespace PhpMyAdmin\Tests;
+namespace PhpMyAdmin\Tests\ConfigStorage;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationCleanup;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationCleanup;
+use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Version;
use PHPUnit\Framework\MockObject\MockObject;
use function array_merge;
/**
- * @covers \PhpMyAdmin\RelationCleanup
+ * @covers \PhpMyAdmin\ConfigStorage\RelationCleanup
*/
class RelationCleanupTest extends AbstractTestCase
{
diff --git a/test/classes/RelationParametersTest.php b/test/classes/ConfigStorage/RelationParametersTest.php
similarity index 99%
rename from test/classes/RelationParametersTest.php
rename to test/classes/ConfigStorage/RelationParametersTest.php
index fa93751fc0..f844f47133 100644
--- a/test/classes/RelationParametersTest.php
+++ b/test/classes/ConfigStorage/RelationParametersTest.php
@@ -2,15 +2,15 @@
declare(strict_types=1);
-namespace PhpMyAdmin\Tests;
+namespace PhpMyAdmin\Tests\ConfigStorage;
+use PhpMyAdmin\ConfigStorage\RelationParameters;
use PhpMyAdmin\Dbal\DatabaseName;
-use PhpMyAdmin\RelationParameters;
use PhpMyAdmin\Version;
use PHPUnit\Framework\TestCase;
/**
- * @covers \PhpMyAdmin\RelationParameters
+ * @covers \PhpMyAdmin\ConfigStorage\RelationParameters
*/
class RelationParametersTest extends TestCase
{
diff --git a/test/classes/RelationTest.php b/test/classes/ConfigStorage/RelationTest.php
similarity index 99%
rename from test/classes/RelationTest.php
rename to test/classes/ConfigStorage/RelationTest.php
index 0b88c7016e..02ac7f6c8e 100644
--- a/test/classes/RelationTest.php
+++ b/test/classes/ConfigStorage/RelationTest.php
@@ -2,15 +2,16 @@
declare(strict_types=1);
-namespace PhpMyAdmin\Tests;
+namespace PhpMyAdmin\Tests\ConfigStorage;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\DatabaseInterface;
-use PhpMyAdmin\Relation;
+use PhpMyAdmin\Tests\AbstractTestCase;
use function implode;
/**
- * @covers \PhpMyAdmin\Relation
+ * @covers \PhpMyAdmin\ConfigStorage\Relation
* @group medium
*/
class RelationTest extends AbstractTestCase
diff --git a/test/classes/Controllers/CheckRelationsControllerTest.php b/test/classes/Controllers/CheckRelationsControllerTest.php
index 5cc8a87f33..f4b7a483bb 100644
--- a/test/classes/Controllers/CheckRelationsControllerTest.php
+++ b/test/classes/Controllers/CheckRelationsControllerTest.php
@@ -4,9 +4,9 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\CheckRelationsController;
use PhpMyAdmin\Http\ServerRequest;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
diff --git a/test/classes/Controllers/Database/Structure/FavoriteTableControllerTest.php b/test/classes/Controllers/Database/Structure/FavoriteTableControllerTest.php
index 31eb2229f4..80bbd6e836 100644
--- a/test/classes/Controllers/Database/Structure/FavoriteTableControllerTest.php
+++ b/test/classes/Controllers/Database/Structure/FavoriteTableControllerTest.php
@@ -4,9 +4,9 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers\Database\Structure;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\Database\Structure\FavoriteTableController;
use PhpMyAdmin\RecentFavoriteTable;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Tests\Stubs\ResponseRenderer as ResponseStub;
diff --git a/test/classes/Controllers/Database/StructureControllerTest.php b/test/classes/Controllers/Database/StructureControllerTest.php
index 7a191ced8e..4a52e075b0 100644
--- a/test/classes/Controllers/Database/StructureControllerTest.php
+++ b/test/classes/Controllers/Database/StructureControllerTest.php
@@ -4,12 +4,12 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers\Database;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\Controllers\Database\StructureController;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\FlashMessages;
use PhpMyAdmin\Operations;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationCleanup;
use PhpMyAdmin\Replication;
use PhpMyAdmin\Table;
use PhpMyAdmin\Template;
diff --git a/test/classes/Controllers/Export/Template/CreateControllerTest.php b/test/classes/Controllers/Export/Template/CreateControllerTest.php
index 802d11b684..c5102c1728 100644
--- a/test/classes/Controllers/Export/Template/CreateControllerTest.php
+++ b/test/classes/Controllers/Export/Template/CreateControllerTest.php
@@ -4,11 +4,11 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers\Export\Template;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\Export\Template\CreateController;
use PhpMyAdmin\Export\Template as ExportTemplate;
use PhpMyAdmin\Export\TemplateModel;
use PhpMyAdmin\Http\ServerRequest;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
diff --git a/test/classes/Controllers/Export/Template/DeleteControllerTest.php b/test/classes/Controllers/Export/Template/DeleteControllerTest.php
index ee6cc95482..afb15b4413 100644
--- a/test/classes/Controllers/Export/Template/DeleteControllerTest.php
+++ b/test/classes/Controllers/Export/Template/DeleteControllerTest.php
@@ -4,10 +4,10 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers\Export\Template;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\Export\Template\DeleteController;
use PhpMyAdmin\Export\TemplateModel;
use PhpMyAdmin\Http\ServerRequest;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
diff --git a/test/classes/Controllers/Export/Template/LoadControllerTest.php b/test/classes/Controllers/Export/Template/LoadControllerTest.php
index 7fe946b650..5e8fbd0f4a 100644
--- a/test/classes/Controllers/Export/Template/LoadControllerTest.php
+++ b/test/classes/Controllers/Export/Template/LoadControllerTest.php
@@ -4,10 +4,10 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers\Export\Template;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\Export\Template\LoadController;
use PhpMyAdmin\Export\TemplateModel;
use PhpMyAdmin\Http\ServerRequest;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
diff --git a/test/classes/Controllers/Export/Template/UpdateControllerTest.php b/test/classes/Controllers/Export/Template/UpdateControllerTest.php
index 1abb188fc4..0419940405 100644
--- a/test/classes/Controllers/Export/Template/UpdateControllerTest.php
+++ b/test/classes/Controllers/Export/Template/UpdateControllerTest.php
@@ -4,10 +4,10 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers\Export\Template;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\Export\Template\UpdateController;
use PhpMyAdmin\Export\TemplateModel;
use PhpMyAdmin\Http\ServerRequest;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
diff --git a/test/classes/Controllers/Server/Databases/DestroyControllerTest.php b/test/classes/Controllers/Server/Databases/DestroyControllerTest.php
index 4c193a5fb3..62749e3005 100644
--- a/test/classes/Controllers/Server/Databases/DestroyControllerTest.php
+++ b/test/classes/Controllers/Server/Databases/DestroyControllerTest.php
@@ -4,10 +4,10 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers\Server\Databases;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\Controllers\Server\Databases\DestroyController;
use PhpMyAdmin\DatabaseInterface;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationCleanup;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
diff --git a/test/classes/Controllers/Server/DatabasesControllerTest.php b/test/classes/Controllers/Server/DatabasesControllerTest.php
index 0e60029bd4..66c7d7bd7a 100644
--- a/test/classes/Controllers/Server/DatabasesControllerTest.php
+++ b/test/classes/Controllers/Server/DatabasesControllerTest.php
@@ -4,9 +4,9 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers\Server;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\Controllers\Server\DatabasesController;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationCleanup;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
diff --git a/test/classes/Controllers/Table/RelationControllerTest.php b/test/classes/Controllers/Table/RelationControllerTest.php
index 0c34df8f62..ce2fd70e4f 100644
--- a/test/classes/Controllers/Table/RelationControllerTest.php
+++ b/test/classes/Controllers/Table/RelationControllerTest.php
@@ -4,9 +4,9 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers\Table;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\Table\RelationController;
use PhpMyAdmin\DatabaseInterface;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Table;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
diff --git a/test/classes/Controllers/Table/SearchControllerTest.php b/test/classes/Controllers/Table/SearchControllerTest.php
index 0c2d57200f..e6026ec161 100644
--- a/test/classes/Controllers/Table/SearchControllerTest.php
+++ b/test/classes/Controllers/Table/SearchControllerTest.php
@@ -4,11 +4,11 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers\Table;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\Table\SearchController;
use PhpMyAdmin\Core;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\FieldMetadata;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Table\Search;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
diff --git a/test/classes/Controllers/Table/Structure/ChangeControllerTest.php b/test/classes/Controllers/Table/Structure/ChangeControllerTest.php
index 0f9bb7c29c..d2f6a506b4 100644
--- a/test/classes/Controllers/Table/Structure/ChangeControllerTest.php
+++ b/test/classes/Controllers/Table/Structure/ChangeControllerTest.php
@@ -4,8 +4,8 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers\Table\Structure;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\Table\Structure\ChangeController;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Tests\Stubs\ResponseRenderer as ResponseStub;
diff --git a/test/classes/Controllers/Table/Structure/SaveControllerTest.php b/test/classes/Controllers/Table/Structure/SaveControllerTest.php
index 53fe39b3fe..bcfbd2b576 100644
--- a/test/classes/Controllers/Table/Structure/SaveControllerTest.php
+++ b/test/classes/Controllers/Table/Structure/SaveControllerTest.php
@@ -4,9 +4,9 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers\Table\Structure;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\Table\Structure\SaveController;
use PhpMyAdmin\Controllers\Table\StructureController;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Tests\Stubs\ResponseRenderer as ResponseStub;
diff --git a/test/classes/Database/Designer/CommonTest.php b/test/classes/Database/Designer/CommonTest.php
index 3f308f7f6c..d3c74328cd 100644
--- a/test/classes/Database/Designer/CommonTest.php
+++ b/test/classes/Database/Designer/CommonTest.php
@@ -4,9 +4,9 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Database\Designer;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Database\Designer\Common;
use PhpMyAdmin\DatabaseInterface;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Version;
diff --git a/test/classes/Database/DesignerTest.php b/test/classes/Database/DesignerTest.php
index 23cc15d7ec..b3d4441b91 100644
--- a/test/classes/Database/DesignerTest.php
+++ b/test/classes/Database/DesignerTest.php
@@ -4,9 +4,9 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Database;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Database\Designer;
use PhpMyAdmin\DatabaseInterface;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Version;
diff --git a/test/classes/Database/QbeTest.php b/test/classes/Database/QbeTest.php
index 67e5cb5e12..fb08312954 100644
--- a/test/classes/Database/QbeTest.php
+++ b/test/classes/Database/QbeTest.php
@@ -4,9 +4,9 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Database;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Database\Qbe;
use PhpMyAdmin\DatabaseInterface;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
diff --git a/test/classes/DatabaseInterfaceTest.php b/test/classes/DatabaseInterfaceTest.php
index 0389323e87..2b2cc3a345 100644
--- a/test/classes/DatabaseInterfaceTest.php
+++ b/test/classes/DatabaseInterfaceTest.php
@@ -4,9 +4,9 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Database\DatabaseList;
use PhpMyAdmin\Query\Utilities;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\SystemDatabase;
use PhpMyAdmin\Utils\SessionCache;
diff --git a/test/classes/ErrorReportTest.php b/test/classes/ErrorReportTest.php
index 24145ce340..6abdc8675c 100644
--- a/test/classes/ErrorReportTest.php
+++ b/test/classes/ErrorReportTest.php
@@ -4,9 +4,9 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Error;
use PhpMyAdmin\ErrorReport;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Utils\HttpRequest;
use PhpMyAdmin\Version;
diff --git a/test/classes/Export/OptionsTest.php b/test/classes/Export/OptionsTest.php
index 36364219cd..1cb1321dc1 100644
--- a/test/classes/Export/OptionsTest.php
+++ b/test/classes/Export/OptionsTest.php
@@ -5,12 +5,12 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Export;
use PhpMyAdmin\Config;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Encoding;
use PhpMyAdmin\Export\Options;
use PhpMyAdmin\Export\TemplateModel;
use PhpMyAdmin\Plugins;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Util;
diff --git a/test/classes/Navigation/NavigationTest.php b/test/classes/Navigation/NavigationTest.php
index f841b409e1..315a6ba66b 100644
--- a/test/classes/Navigation/NavigationTest.php
+++ b/test/classes/Navigation/NavigationTest.php
@@ -4,10 +4,10 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Navigation;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationParameters;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Navigation\Navigation;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationParameters;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Url;
diff --git a/test/classes/NormalizationTest.php b/test/classes/NormalizationTest.php
index 7339e05a82..8df15e9e70 100644
--- a/test/classes/NormalizationTest.php
+++ b/test/classes/NormalizationTest.php
@@ -4,10 +4,10 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Message;
use PhpMyAdmin\Normalization;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Template;
use PhpMyAdmin\Transformations;
use PhpMyAdmin\Types;
diff --git a/test/classes/OperationsTest.php b/test/classes/OperationsTest.php
index 9bbe8c03e9..fea0406c4a 100644
--- a/test/classes/OperationsTest.php
+++ b/test/classes/OperationsTest.php
@@ -4,8 +4,8 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Operations;
-use PhpMyAdmin\Relation;
use function array_merge;
diff --git a/test/classes/Plugins/Export/ExportHtmlwordTest.php b/test/classes/Plugins/Export/ExportHtmlwordTest.php
index c426acac39..11906d8d64 100644
--- a/test/classes/Plugins/Export/ExportHtmlwordTest.php
+++ b/test/classes/Plugins/Export/ExportHtmlwordTest.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Plugins\Export;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationParameters;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Plugins\Export\ExportHtmlword;
use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup;
@@ -12,8 +14,6 @@ use PhpMyAdmin\Properties\Options\Items\BoolPropertyItem;
use PhpMyAdmin\Properties\Options\Items\RadioPropertyItem;
use PhpMyAdmin\Properties\Options\Items\TextPropertyItem;
use PhpMyAdmin\Properties\Plugins\ExportPluginProperties;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationParameters;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Version;
use ReflectionMethod;
diff --git a/test/classes/Plugins/Export/ExportLatexTest.php b/test/classes/Plugins/Export/ExportLatexTest.php
index a18db56ed5..b29ce6e026 100644
--- a/test/classes/Plugins/Export/ExportLatexTest.php
+++ b/test/classes/Plugins/Export/ExportLatexTest.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Plugins\Export;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationParameters;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Plugins\Export\ExportLatex;
use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup;
@@ -12,8 +14,6 @@ use PhpMyAdmin\Properties\Options\Items\BoolPropertyItem;
use PhpMyAdmin\Properties\Options\Items\RadioPropertyItem;
use PhpMyAdmin\Properties\Options\Items\TextPropertyItem;
use PhpMyAdmin\Properties\Plugins\ExportPluginProperties;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationParameters;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Version;
use ReflectionMethod;
diff --git a/test/classes/Plugins/Export/ExportOdtTest.php b/test/classes/Plugins/Export/ExportOdtTest.php
index d391ef4be2..3888d3f170 100644
--- a/test/classes/Plugins/Export/ExportOdtTest.php
+++ b/test/classes/Plugins/Export/ExportOdtTest.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Plugins\Export;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationParameters;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\FieldMetadata;
use PhpMyAdmin\Plugins\Export\ExportOdt;
@@ -13,8 +15,6 @@ use PhpMyAdmin\Properties\Options\Items\BoolPropertyItem;
use PhpMyAdmin\Properties\Options\Items\RadioPropertyItem;
use PhpMyAdmin\Properties\Options\Items\TextPropertyItem;
use PhpMyAdmin\Properties\Plugins\ExportPluginProperties;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationParameters;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Version;
use ReflectionMethod;
diff --git a/test/classes/Plugins/Export/ExportSqlTest.php b/test/classes/Plugins/Export/ExportSqlTest.php
index 7da7d51705..c57ce62fbd 100644
--- a/test/classes/Plugins/Export/ExportSqlTest.php
+++ b/test/classes/Plugins/Export/ExportSqlTest.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Plugins\Export;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationParameters;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\FieldMetadata;
use PhpMyAdmin\Plugins\Export\ExportSql;
@@ -16,8 +18,6 @@ use PhpMyAdmin\Properties\Options\Items\RadioPropertyItem;
use PhpMyAdmin\Properties\Options\Items\SelectPropertyItem;
use PhpMyAdmin\Properties\Options\Items\TextPropertyItem;
use PhpMyAdmin\Properties\Plugins\ExportPluginProperties;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationParameters;
use PhpMyAdmin\Table;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Version;
diff --git a/test/classes/Plugins/Export/ExportTexytextTest.php b/test/classes/Plugins/Export/ExportTexytextTest.php
index 8cdd4dd548..a8e558f8b6 100644
--- a/test/classes/Plugins/Export/ExportTexytextTest.php
+++ b/test/classes/Plugins/Export/ExportTexytextTest.php
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Plugins\Export;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Plugins\Export\ExportTexytext;
use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup;
@@ -12,7 +13,6 @@ use PhpMyAdmin\Properties\Options\Items\BoolPropertyItem;
use PhpMyAdmin\Properties\Options\Items\RadioPropertyItem;
use PhpMyAdmin\Properties\Options\Items\TextPropertyItem;
use PhpMyAdmin\Properties\Plugins\ExportPluginProperties;
-use PhpMyAdmin\Relation;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Version;
use ReflectionMethod;
diff --git a/test/classes/Server/PrivilegesTest.php b/test/classes/Server/PrivilegesTest.php
index 5083c909da..4f24277992 100644
--- a/test/classes/Server/PrivilegesTest.php
+++ b/test/classes/Server/PrivilegesTest.php
@@ -7,11 +7,11 @@ namespace PhpMyAdmin\Tests\Server;
use mysqli_result;
use mysqli_stmt;
use PhpMyAdmin\Config;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Message;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationCleanup;
use PhpMyAdmin\Server\Plugins;
use PhpMyAdmin\Server\Privileges;
use PhpMyAdmin\Template;
diff --git a/test/classes/SqlTest.php b/test/classes/SqlTest.php
index c79cdd311d..4fc9be9328 100644
--- a/test/classes/SqlTest.php
+++ b/test/classes/SqlTest.php
@@ -4,11 +4,11 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\FieldMetadata;
use PhpMyAdmin\Operations;
use PhpMyAdmin\ParseAnalyze;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationCleanup;
use PhpMyAdmin\Sql;
use PhpMyAdmin\Template;
use PhpMyAdmin\Transformations;
diff --git a/test/classes/TableTest.php b/test/classes/TableTest.php
index eab968ae1e..ef4c387b67 100644
--- a/test/classes/TableTest.php
+++ b/test/classes/TableTest.php
@@ -4,10 +4,10 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests;
+use PhpMyAdmin\ConfigStorage\RelationParameters;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Index;
use PhpMyAdmin\Query\Cache;
-use PhpMyAdmin\RelationParameters;
use PhpMyAdmin\Table;
use PhpMyAdmin\Tests\Stubs\DbiDummy;
use stdClass;
diff --git a/test/classes/TrackingTest.php b/test/classes/TrackingTest.php
index 6f76d6f862..2d2a1d88ce 100644
--- a/test/classes/TrackingTest.php
+++ b/test/classes/TrackingTest.php
@@ -4,7 +4,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests;
-use PhpMyAdmin\Relation;
+use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\SqlQueryForm;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tracking;
diff --git a/test/classes/UserPasswordTest.php b/test/classes/UserPasswordTest.php
index c799104f4f..1486cb785d 100644
--- a/test/classes/UserPasswordTest.php
+++ b/test/classes/UserPasswordTest.php
@@ -4,9 +4,9 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests;
+use PhpMyAdmin\ConfigStorage\Relation;
+use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\Message;
-use PhpMyAdmin\Relation;
-use PhpMyAdmin\RelationCleanup;
use PhpMyAdmin\Server\Plugins;
use PhpMyAdmin\Server\Privileges;
use PhpMyAdmin\Template;