diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 56fd76e7b8..9072a49d65 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1381,11 +1381,6 @@ parameters: count: 1 path: src/Console.php - - - message: "#^Cannot cast mixed to int\\.$#" - count: 1 - path: src/Controllers/BrowseForeignersController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -1402,11 +1397,6 @@ parameters: count: 2 path: src/Controllers/Console/Bookmark/AddController.php - - - message: "#^Parameter \\#2 \\$table of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:getColumnsNotInCentralList\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/CentralColumns/PopulateColumnsController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -1440,21 +1430,21 @@ parameters: - message: "#^Cannot cast mixed to int\\.$#" - count: 2 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Database\\\\Designer\\:\\:getHtmlForEditOrDeletePages\\(\\) expects string, mixed given\\.$#" - count: 2 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Database\\\\Designer\\:\\:getHtmlForPageSaveAs\\(\\) expects string, mixed given\\.$#" count: 1 path: src/Controllers/Database/DesignerController.php - - message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Database\\\\Designer\\:\\:getHtmlForSchemaExport\\(\\) expects string, mixed given\\.$#" + message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Database\\\\Designer\\:\\:getHtmlForEditOrDeletePages\\(\\) expects string, string\\|null given\\.$#" + count: 2 + path: src/Controllers/Database/DesignerController.php + + - + message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Database\\\\Designer\\:\\:getHtmlForPageSaveAs\\(\\) expects string, string\\|null given\\.$#" + count: 1 + path: src/Controllers/Database/DesignerController.php + + - + message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Database\\\\Designer\\:\\:getHtmlForSchemaExport\\(\\) expects string, string\\|null given\\.$#" count: 1 path: src/Controllers/Database/DesignerController.php @@ -1470,11 +1460,11 @@ parameters: - message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:getTablesInfo\\(\\) expects string\\|null, mixed given\\.$#" - count: 2 + count: 1 path: src/Controllers/Database/DesignerController.php - - message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:saveDisplayField\\(\\) expects string, mixed given\\.$#" + message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:saveDisplayField\\(\\) expects string, string\\|null given\\.$#" count: 1 path: src/Controllers/Database/DesignerController.php @@ -1484,117 +1474,17 @@ parameters: path: src/Controllers/Database/DesignerController.php - - message: "#^Parameter \\#1 \\$index of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:saveSetting\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#1 \\$pageName of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:createNewPage\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#1 \\$pg of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:deletePage\\(\\) expects int, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#1 \\$pg of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:getPageExists\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#1 \\$pg of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:saveTablePositions\\(\\) expects int, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#1 \\$string of function htmlspecialchars expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#1 \\$t1 of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:addNewRelation\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#1 \\$t1 of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:removeRelation\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#2 \\$db of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:createNewPage\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#2 \\$f1 of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:addNewRelation\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#2 \\$f1 of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:removeRelation\\(\\) expects string, mixed given\\.$#" + message: "#^Parameter \\#2 \\$db of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:createNewPage\\(\\) expects string, string\\|null given\\.$#" count: 1 path: src/Controllers/Database/DesignerController.php - message: "#^Parameter \\#2 \\$table of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:getTablesInfo\\(\\) expects string\\|null, mixed given\\.$#" - count: 2 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#2 \\$table of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:saveDisplayField\\(\\) expects string, mixed given\\.$#" count: 1 path: src/Controllers/Database/DesignerController.php - - message: "#^Parameter \\#2 \\$value of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:saveSetting\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#3 \\$field of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:saveDisplayField\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#3 \\$t2 of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:addNewRelation\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#3 \\$t2 of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:removeRelation\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#4 \\$f2 of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:addNewRelation\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#4 \\$f2 of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:removeRelation\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#5 \\$onDelete of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:addNewRelation\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#6 \\$onUpdate of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:addNewRelation\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#7 \\$db1 of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:addNewRelation\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/DesignerController.php - - - - message: "#^Parameter \\#8 \\$db2 of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:addNewRelation\\(\\) expects string, mixed given\\.$#" + message: "#^Parameter \\#2 \\$table of method PhpMyAdmin\\\\Database\\\\Designer\\\\Common\\:\\:saveDisplayField\\(\\) expects string, string\\|null given\\.$#" count: 1 path: src/Controllers/Database/DesignerController.php @@ -1717,11 +1607,6 @@ parameters: count: 1 path: src/Controllers/Database/ImportController.php - - - message: "#^Parameter \\#1 \\$sqlQuery of static method PhpMyAdmin\\\\Database\\\\MultiTableQuery\\:\\:displayResults\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/MultiTableQuery/QueryController.php - - message: "#^Parameter \\#2 \\$db of static method PhpMyAdmin\\\\Database\\\\MultiTableQuery\\:\\:displayResults\\(\\) expects string, mixed given\\.$#" count: 1 @@ -1844,11 +1729,6 @@ parameters: count: 1 path: src/Controllers/Database/SqlController.php - - - message: "#^Parameter \\#1 \\$string of function htmlspecialchars expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/SqlController.php - - message: "#^Parameter \\#1 \\$database of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:deleteColumnsFromList\\(\\) expects string, mixed given\\.$#" count: 1 @@ -1862,16 +1742,6 @@ parameters: count: 1 path: src/Controllers/Database/Structure/CopyFormController.php - - - message: "#^Parameter \\#1 \\$value of static method PhpMyAdmin\\\\Table\\\\MoveScope\\:\\:from\\(\\) expects int\\|string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/Structure/CopyTableController.php - - - - message: "#^Cannot cast mixed to string\\.$#" - count: 1 - path: src/Controllers/Database/Structure/CopyTableWithPrefixController.php - - message: "#^Cannot access offset 'table_limit_offset' on mixed\\.$#" count: 1 @@ -1986,11 +1856,6 @@ parameters: count: 1 path: src/Controllers/Database/Structure/RealRowCountController.php - - - message: "#^Cannot cast mixed to string\\.$#" - count: 1 - path: src/Controllers/Database/Structure/ReplacePrefixController.php - - message: "#^Parameter \\#3 \\$statement of method PhpMyAdmin\\\\FlashMessenger\\:\\:addMessage\\(\\) expects string, mixed given\\.$#" count: 1 @@ -2034,11 +1899,6 @@ parameters: count: 1 path: src/Controllers/Database/StructureController.php - - - message: "#^Parameter \\#1 \\$connection of method PhpMyAdmin\\\\Replication\\\\ReplicationInfo\\:\\:load\\(\\) expects string\\|null, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/StructureController.php - - message: "#^Parameter \\#1 \\$db of method PhpMyAdmin\\\\Controllers\\\\Database\\\\StructureController\\:\\:hasTable\\(\\) expects array, mixed given\\.$#" count: 2 @@ -2117,31 +1977,16 @@ parameters: count: 1 path: src/Controllers/Database/TrackingController.php - - - message: "#^Parameter \\#1 \\$string of function htmlspecialchars expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/TrackingController.php - - message: "#^Parameter \\#2 \\$selected of method PhpMyAdmin\\\\Tracking\\\\Tracking\\:\\:createTrackingForMultipleTables\\(\\) expects array, mixed given\\.$#" count: 1 path: src/Controllers/Database/TrackingController.php - - - message: "#^Parameter \\#2 \\$tableName of method PhpMyAdmin\\\\Tracking\\\\Tracking\\:\\:deleteTracking\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/TrackingController.php - - message: "#^Parameter \\#2 \\$urlParams of method PhpMyAdmin\\\\Tracking\\\\Tracking\\:\\:getHtmlForDbTrackingTables\\(\\) expects array, mixed given\\.$#" count: 1 path: src/Controllers/Database/TrackingController.php - - - message: "#^Parameter \\#3 \\$version of method PhpMyAdmin\\\\Tracking\\\\Tracking\\:\\:createTrackingForMultipleTables\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Database/TrackingController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -2253,21 +2098,6 @@ parameters: count: 1 path: src/Controllers/Export/ExportController.php - - - message: "#^Parameter \\#11 \\$allrows of method PhpMyAdmin\\\\Export\\\\Export\\:\\:exportTable\\(\\) expects string\\|null, mixed given\\.$#" - count: 2 - path: src/Controllers/Export/ExportController.php - - - - message: "#^Parameter \\#12 \\$limitTo of method PhpMyAdmin\\\\Export\\\\Export\\:\\:exportTable\\(\\) expects string, mixed given\\.$#" - count: 2 - path: src/Controllers/Export/ExportController.php - - - - message: "#^Parameter \\#13 \\$limitFrom of method PhpMyAdmin\\\\Export\\\\Export\\:\\:exportTable\\(\\) expects string, mixed given\\.$#" - count: 2 - path: src/Controllers/Export/ExportController.php - - message: "#^Parameter \\#14 \\$sqlQuery of method PhpMyAdmin\\\\Export\\\\Export\\:\\:exportTable\\(\\) expects string, mixed given\\.$#" count: 2 @@ -2343,11 +2173,6 @@ parameters: count: 2 path: src/Controllers/Export/ExportController.php - - - message: "#^Parameter \\#5 \\$filenameTemplate of method PhpMyAdmin\\\\Export\\\\Export\\:\\:getFilenameAndMimetype\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Export/ExportController.php - - message: "#^Parameter \\#5 \\$sqlQuery of static method PhpMyAdmin\\\\Export\\\\Export\\:\\:exportRaw\\(\\) expects string, mixed given\\.$#" count: 1 @@ -2399,11 +2224,6 @@ parameters: count: 1 path: src/Controllers/Export/Template/DeleteController.php - - - message: "#^Cannot cast mixed to int\\.$#" - count: 1 - path: src/Controllers/Export/Template/DeleteController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -2412,11 +2232,6 @@ parameters: count: 1 path: src/Controllers/Export/Template/LoadController.php - - - message: "#^Cannot cast mixed to int\\.$#" - count: 1 - path: src/Controllers/Export/Template/LoadController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -2425,11 +2240,6 @@ parameters: count: 1 path: src/Controllers/Export/Template/UpdateController.php - - - message: "#^Cannot cast mixed to int\\.$#" - count: 1 - path: src/Controllers/Export/Template/UpdateController.php - - message: "#^Cannot cast mixed to int\\.$#" count: 1 @@ -2488,11 +2298,6 @@ parameters: count: 1 path: src/Controllers/HomeController.php - - - message: "#^Static property PhpMyAdmin\\\\Current\\:\\:\\$database \\(string\\) does not accept mixed\\.$#" - count: 1 - path: src/Controllers/HomeController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -2541,16 +2346,6 @@ parameters: count: 1 path: src/Controllers/Import/ImportController.php - - - message: "#^Cannot cast mixed to int\\.$#" - count: 4 - path: src/Controllers/Import/ImportController.php - - - - message: "#^Cannot cast mixed to string\\.$#" - count: 3 - path: src/Controllers/Import/ImportController.php - - message: "#^Casting to string something that's already string\\.$#" count: 1 @@ -2631,16 +2426,6 @@ parameters: count: 2 path: src/Controllers/Import/ImportController.php - - - message: "#^Parameter \\#4 \\$sqlQueryForBookmark of method PhpMyAdmin\\\\Sql\\:\\:storeTheQueryAsBookmark\\(\\) expects string, mixed given\\.$#" - count: 2 - path: src/Controllers/Import/ImportController.php - - - - message: "#^Parameter \\#5 \\$bookmarkLabel of method PhpMyAdmin\\\\Sql\\:\\:storeTheQueryAsBookmark\\(\\) expects string, mixed given\\.$#" - count: 2 - path: src/Controllers/Import/ImportController.php - - message: "#^Parameter \\#5 \\$exit of static method PhpMyAdmin\\\\Html\\\\Generator\\:\\:mysqlDie\\(\\) expects bool, mixed given\\.$#" count: 1 @@ -2716,71 +2501,6 @@ parameters: count: 1 path: src/Controllers/LicenseController.php - - - message: "#^Parameter \\#1 \\$database of method PhpMyAdmin\\\\Navigation\\\\Navigation\\:\\:getItemUnhideDialog\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/NavigationController.php - - - - message: "#^Parameter \\#1 \\$itemName of method PhpMyAdmin\\\\Navigation\\\\Navigation\\:\\:hideNavigationItem\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/NavigationController.php - - - - message: "#^Parameter \\#1 \\$itemName of method PhpMyAdmin\\\\Navigation\\\\Navigation\\:\\:unhideNavigationItem\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/NavigationController.php - - - - message: "#^Parameter \\#2 \\$itemType of method PhpMyAdmin\\\\Navigation\\\\Navigation\\:\\:hideNavigationItem\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/NavigationController.php - - - - message: "#^Parameter \\#2 \\$itemType of method PhpMyAdmin\\\\Navigation\\\\Navigation\\:\\:unhideNavigationItem\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/NavigationController.php - - - - message: "#^Parameter \\#3 \\$dbName of method PhpMyAdmin\\\\Navigation\\\\Navigation\\:\\:hideNavigationItem\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/NavigationController.php - - - - message: "#^Parameter \\#3 \\$dbName of method PhpMyAdmin\\\\Navigation\\\\Navigation\\:\\:unhideNavigationItem\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/NavigationController.php - - - - message: "#^Cannot cast mixed to int\\.$#" - count: 1 - path: src/Controllers/Normalization/CreateNewColumnController.php - - - - message: "#^Parameter \\#1 \\$repeatingColumns of method PhpMyAdmin\\\\Normalization\\:\\:moveRepeatingGroup\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Normalization/MoveRepeatingGroup.php - - - - message: "#^Parameter \\#2 \\$primaryColumns of method PhpMyAdmin\\\\Normalization\\:\\:moveRepeatingGroup\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Normalization/MoveRepeatingGroup.php - - - - message: "#^Parameter \\#3 \\$newTable of method PhpMyAdmin\\\\Normalization\\:\\:moveRepeatingGroup\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Normalization/MoveRepeatingGroup.php - - - - message: "#^Parameter \\#4 \\$newColumn of method PhpMyAdmin\\\\Normalization\\:\\:moveRepeatingGroup\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Normalization/MoveRepeatingGroup.php - - - - message: "#^Parameter \\#1 \\$json of function json_decode expects string, mixed given\\.$#" - count: 2 - path: src/Controllers/Normalization/SecondNormalForm/CreateNewTablesController.php - - message: "#^Parameter \\#1 \\$partialDependencies of method PhpMyAdmin\\\\Normalization\\:\\:createNewTablesFor2NF\\(\\) expects array, mixed given\\.$#" count: 1 @@ -2791,21 +2511,11 @@ parameters: count: 1 path: src/Controllers/Normalization/SecondNormalForm/CreateNewTablesController.php - - - message: "#^Parameter \\#1 \\$json of function json_decode expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Normalization/SecondNormalForm/NewTablesController.php - - message: "#^Parameter \\#1 \\$partialDependencies of method PhpMyAdmin\\\\Normalization\\:\\:getHtmlForNewTables2NF\\(\\) expects array, mixed given\\.$#" count: 1 path: src/Controllers/Normalization/SecondNormalForm/NewTablesController.php - - - message: "#^Parameter \\#1 \\$json of function json_decode expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Normalization/ThirdNormalForm/CreateNewTablesController.php - - message: "#^Parameter \\#1 \\$newTables of method PhpMyAdmin\\\\Normalization\\:\\:createNewTablesFor3NF\\(\\) expects array, mixed given\\.$#" count: 1 @@ -2821,11 +2531,6 @@ parameters: count: 1 path: src/Controllers/Normalization/ThirdNormalForm/NewTablesController.php - - - message: "#^Parameter \\#1 \\$json of function json_decode expects string, mixed given\\.$#" - count: 2 - path: src/Controllers/Normalization/ThirdNormalForm/NewTablesController.php - - message: "#^Parameter \\#2 \\$tables of method PhpMyAdmin\\\\Normalization\\:\\:getHtmlForNewTables3NF\\(\\) expects array, mixed given\\.$#" count: 1 @@ -2839,21 +2544,6 @@ parameters: count: 1 path: src/Controllers/Operations/Database/CollationController.php - - - message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" - count: 1 - path: src/Controllers/Operations/Database/CollationController.php - - - - message: "#^Parameter \\#1 \\$collation of static method PhpMyAdmin\\\\Util\\:\\:getCharsetQueryPart\\(\\) expects string, mixed given\\.$#" - count: 2 - path: src/Controllers/Operations/Database/CollationController.php - - - - message: "#^Parameter \\#3 \\$tableCollation of method PhpMyAdmin\\\\Operations\\:\\:changeAllColumnsCollation\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Operations/Database/CollationController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -2887,11 +2577,6 @@ parameters: count: 1 path: src/Controllers/Operations/DatabaseController.php - - - message: "#^Parameter \\#2 \\$comment of method PhpMyAdmin\\\\ConfigStorage\\\\Relation\\:\\:setDbComment\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Operations/DatabaseController.php - - message: "#^Parameter \\#2 \\$exportSqlPlugin of method PhpMyAdmin\\\\Operations\\:\\:getViewsAndCreateSqlViewStandIn\\(\\) expects PhpMyAdmin\\\\Plugins\\\\Export\\\\ExportSql, object\\|null given\\.$#" count: 1 @@ -2991,11 +2676,6 @@ parameters: count: 1 path: src/Controllers/Preferences/ExportController.php - - - message: "#^Parameter \\#1 \\$string of function ltrim expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Preferences/ExportController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -3004,11 +2684,6 @@ parameters: count: 1 path: src/Controllers/Preferences/FeaturesController.php - - - message: "#^Parameter \\#1 \\$string of function ltrim expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Preferences/FeaturesController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -3017,11 +2692,6 @@ parameters: count: 1 path: src/Controllers/Preferences/ImportController.php - - - message: "#^Parameter \\#1 \\$string of function ltrim expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Preferences/ImportController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -3030,11 +2700,6 @@ parameters: count: 1 path: src/Controllers/Preferences/MainPanelController.php - - - message: "#^Parameter \\#1 \\$string of function ltrim expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Preferences/MainPanelController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -3048,11 +2713,6 @@ parameters: count: 1 path: src/Controllers/Preferences/ManageController.php - - - message: "#^Only booleans are allowed in an if condition, mixed given\\.$#" - count: 1 - path: src/Controllers/Preferences/ManageController.php - - message: "#^Only numeric types are allowed in \\+, int\\<0, max\\>\\|false given on the left side\\.$#" count: 1 @@ -3069,7 +2729,7 @@ parameters: path: src/Controllers/Preferences/ManageController.php - - message: "#^Parameter \\#1 \\$json of function json_decode expects string, mixed given\\.$#" + message: "#^Parameter \\#1 \\$json of function json_decode expects string, string\\|false given\\.$#" count: 1 path: src/Controllers/Preferences/ManageController.php @@ -3083,16 +2743,6 @@ parameters: count: 1 path: src/Controllers/Preferences/ManageController.php - - - message: "#^Parameter \\#1 \\$url of function parse_url expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Preferences/ManageController.php - - - - message: "#^Parameter \\#1 \\$url of static method PhpMyAdmin\\\\Util\\:\\:splitURLQuery\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Preferences/ManageController.php - - message: "#^Parameter \\#3 \\$subject of function str_replace expects array\\|string, \\(int\\|string\\) given\\.$#" count: 1 @@ -3106,11 +2756,6 @@ parameters: count: 1 path: src/Controllers/Preferences/NavigationController.php - - - message: "#^Parameter \\#1 \\$string of function ltrim expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Preferences/NavigationController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -3119,11 +2764,6 @@ parameters: count: 1 path: src/Controllers/Preferences/SqlController.php - - - message: "#^Parameter \\#1 \\$string of function ltrim expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Preferences/SqlController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -3132,11 +2772,6 @@ parameters: count: 1 path: src/Controllers/Preferences/TwoFactorController.php - - - message: "#^Parameter \\#2 \\$name of method PhpMyAdmin\\\\TwoFactor\\:\\:configure\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Preferences/TwoFactorController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -3145,21 +2780,6 @@ parameters: count: 1 path: src/Controllers/Server/BinlogController.php - - - message: "#^Cannot cast mixed to int\\.$#" - count: 1 - path: src/Controllers/Server/BinlogController.php - - - - message: "#^Parameter \\#1 \\$key of function array_key_exists expects int\\|string, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/BinlogController.php - - - - message: "#^Parameter \\#1 \\$log of method PhpMyAdmin\\\\Controllers\\\\Server\\\\BinlogController\\:\\:getSqlQuery\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/BinlogController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -3247,11 +2867,6 @@ parameters: count: 1 path: src/Controllers/Server/DatabasesController.php - - - message: "#^Parameter \\#1 \\$connection of method PhpMyAdmin\\\\Replication\\\\ReplicationInfo\\:\\:load\\(\\) expects string\\|null, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/DatabasesController.php - - message: "#^Parameter \\#1 \\$params of static method PhpMyAdmin\\\\Url\\:\\:getCommonRaw\\(\\) expects array\\, array\\ given\\.$#" count: 1 @@ -3350,11 +2965,6 @@ parameters: count: 1 path: src/Controllers/Server/PrivilegesController.php - - - message: "#^Parameter \\#1 \\$oldUsername of method PhpMyAdmin\\\\Server\\\\Privileges\\:\\:getDataForChangeOrCopyUser\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/PrivilegesController.php - - message: "#^Parameter \\#1 \\$string of function urlencode expects string, \\(array\\\\|string\\) given\\.$#" count: 1 @@ -3420,21 +3030,11 @@ parameters: count: 1 path: src/Controllers/Server/PrivilegesController.php - - - message: "#^Parameter \\#2 \\$oldHostname of method PhpMyAdmin\\\\Server\\\\Privileges\\:\\:getDataForChangeOrCopyUser\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/PrivilegesController.php - - message: "#^Parameter \\#2 \\$sqlQuery of method PhpMyAdmin\\\\Server\\\\Privileges\\:\\:getExtraDataForAjaxBehavior\\(\\) expects string, mixed given\\.$#" count: 1 path: src/Controllers/Server/PrivilegesController.php - - - message: "#^Parameter \\#2 \\$userGroup of method PhpMyAdmin\\\\Server\\\\Privileges\\:\\:setUserGroup\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/PrivilegesController.php - - message: "#^Parameter \\#2 \\$username of method PhpMyAdmin\\\\Server\\\\Privileges\\:\\:addUser\\(\\) expects string, mixed given\\.$#" count: 1 @@ -3500,11 +3100,6 @@ parameters: count: 1 path: src/Controllers/Server/PrivilegesController.php - - - message: "#^Parameter \\#4 \\$oldUsername of method PhpMyAdmin\\\\Server\\\\Privileges\\:\\:getDbSpecificPrivsQueriesForChangeOrCopyUser\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/PrivilegesController.php - - message: "#^Parameter \\#4 \\$username of method PhpMyAdmin\\\\Server\\\\Privileges\\:\\:getExtraDataForAjaxBehavior\\(\\) expects string, mixed given\\.$#" count: 1 @@ -3515,91 +3110,21 @@ parameters: count: 1 path: src/Controllers/Server/PrivilegesController.php - - - message: "#^Parameter \\#5 \\$oldHostname of method PhpMyAdmin\\\\Server\\\\Privileges\\:\\:getDbSpecificPrivsQueriesForChangeOrCopyUser\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/PrivilegesController.php - - - - message: "#^Cannot cast mixed to int\\.$#" - count: 1 - path: src/Controllers/Server/ReplicationController.php - - message: "#^Only booleans are allowed in an if condition, mixed given\\.$#" count: 1 path: src/Controllers/Server/ReplicationController.php - - - message: "#^Parameter \\#10 \\$hostname of method PhpMyAdmin\\\\Replication\\\\ReplicationGui\\:\\:handleControlRequest\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/ReplicationController.php - - message: "#^Parameter \\#2 \\$serverReplicaStatus of method PhpMyAdmin\\\\Replication\\\\ReplicationGui\\:\\:getHtmlForReplicaConfiguration\\(\\) expects bool, mixed given\\.$#" count: 1 path: src/Controllers/Server/ReplicationController.php - - - message: "#^Parameter \\#8 \\$username of method PhpMyAdmin\\\\Replication\\\\ReplicationGui\\:\\:handleControlRequest\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/ReplicationController.php - - - - message: "#^Parameter \\#9 \\$pmaPassword of method PhpMyAdmin\\\\Replication\\\\ReplicationGui\\:\\:handleControlRequest\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/ReplicationController.php - - - - message: "#^Parameter \\#1 \\$requiredData of method PhpMyAdmin\\\\Server\\\\Status\\\\Monitor\\:\\:getJsonForChartingData\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/Status/Monitor/ChartingDataController.php - - - - message: "#^Cannot cast mixed to int\\.$#" - count: 2 - path: src/Controllers/Server/Status/Monitor/GeneralLogController.php - - - - message: "#^Parameter \\#1 \\$name of method PhpMyAdmin\\\\Server\\\\Status\\\\Monitor\\:\\:getJsonForLoggingVars\\(\\) expects string\\|null, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/Status/Monitor/LogVarsController.php - - - - message: "#^Parameter \\#2 \\$value of method PhpMyAdmin\\\\Server\\\\Status\\\\Monitor\\:\\:getJsonForLoggingVars\\(\\) expects string\\|null, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/Status/Monitor/LogVarsController.php - - - - message: "#^Parameter \\#1 \\$database of method PhpMyAdmin\\\\Server\\\\Status\\\\Monitor\\:\\:getJsonForQueryAnalyzer\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/Status/Monitor/QueryAnalyzerController.php - - - - message: "#^Parameter \\#2 \\$query of method PhpMyAdmin\\\\Server\\\\Status\\\\Monitor\\:\\:getJsonForQueryAnalyzer\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/Status/Monitor/QueryAnalyzerController.php - - - - message: "#^Cannot cast mixed to int\\.$#" - count: 2 - path: src/Controllers/Server/Status/Monitor/SlowLogController.php - - message: "#^Only booleans are allowed in an if condition, PhpMyAdmin\\\\Dbal\\\\ResultInterface\\|false given\\.$#" count: 1 path: src/Controllers/Server/Status/Processes/KillController.php - - - message: "#^Cannot cast mixed to string\\.$#" - count: 2 - path: src/Controllers/Server/Status/Processes/RefreshController.php - - - - message: "#^Cannot cast mixed to string\\.$#" - count: 2 - path: src/Controllers/Server/Status/ProcessesController.php - - message: "#^Cannot cast mixed to int\\.$#" count: 1 @@ -3620,11 +3145,6 @@ parameters: count: 2 path: src/Controllers/Server/Status/StatusController.php - - - message: "#^Parameter \\#1 \\$connection of method PhpMyAdmin\\\\Replication\\\\ReplicationGui\\:\\:getHtmlForReplicationStatusTable\\(\\) expects string\\|null, mixed given\\.$#" - count: 2 - path: src/Controllers/Server/Status/StatusController.php - - message: "#^Parameter \\#1 \\$value of static method PhpMyAdmin\\\\Util\\:\\:formatByteDown\\(\\) expects float\\|int\\|string\\|null, \\(array\\|float\\|int\\) given\\.$#" count: 2 @@ -3670,21 +3190,6 @@ parameters: count: 1 path: src/Controllers/Server/Status/VariablesController.php - - - message: "#^Parameter \\#2 \\$userGroup of static method PhpMyAdmin\\\\ConfigStorage\\\\UserGroups\\:\\:edit\\(\\) expects string, mixed given\\.$#" - count: 2 - path: src/Controllers/Server/UserGroupsController.php - - - - message: "#^Parameter \\#2 \\$userGroup of static method PhpMyAdmin\\\\ConfigStorage\\\\UserGroups\\:\\:getHtmlForListingUsersofAGroup\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/UserGroupsController.php - - - - message: "#^Parameter \\#2 \\$userGroup of static method PhpMyAdmin\\\\ConfigStorage\\\\UserGroups\\:\\:getHtmlToEditUserGroup\\(\\) expects string\\|null, mixed given\\.$#" - count: 1 - path: src/Controllers/Server/UserGroupsController.php - - message: "#^Only booleans are allowed in an if condition, PhpMyAdmin\\\\Dbal\\\\ResultInterface\\|false given\\.$#" count: 1 @@ -3695,11 +3200,6 @@ parameters: count: 2 path: src/Controllers/Server/Variables/GetVariableController.php - - - message: "#^Cannot cast mixed to string\\.$#" - count: 1 - path: src/Controllers/Server/Variables/SetVariableController.php - - message: "#^Offset 1 does not exist on array\\\\|null\\.$#" count: 1 @@ -3765,46 +3265,11 @@ parameters: count: 1 path: src/Controllers/Setup/ValidateController.php - - - message: "#^Cannot cast mixed to string\\.$#" - count: 2 - path: src/Controllers/Sql/EnumValuesController.php - - message: "#^Cannot access offset 'relational_display' on mixed\\.$#" count: 1 path: src/Controllers/Sql/RelationalValuesController.php - - - message: "#^Cannot cast mixed to string\\.$#" - count: 2 - path: src/Controllers/Sql/RelationalValuesController.php - - - - message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" - count: 1 - path: src/Controllers/Sql/SetValuesController.php - - - - message: "#^Parameter \\#2 \\$string of function explode expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Sql/SetValuesController.php - - - - message: "#^Parameter \\#3 \\$column of method PhpMyAdmin\\\\Sql\\:\\:getFullValuesForSetColumn\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Sql/SetValuesController.php - - - - message: "#^Parameter \\#3 \\$columnName of method PhpMyAdmin\\\\Sql\\:\\:getValuesForColumn\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Sql/SetValuesController.php - - - - message: "#^Parameter \\#4 \\$whereClause of method PhpMyAdmin\\\\Sql\\:\\:getFullValuesForSetColumn\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Sql/SetValuesController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -4136,11 +3601,6 @@ parameters: count: 5 path: src/Controllers/Table/CreateController.php - - - message: "#^Cannot cast mixed to int\\.$#" - count: 5 - path: src/Controllers/Table/CreateController.php - - message: "#^Parameter \\#1 \\$string of function strlen expects string, mixed given\\.$#" count: 1 @@ -4338,16 +3798,6 @@ parameters: count: 2 path: src/Controllers/Table/FindReplaceController.php - - - message: "#^Cannot cast mixed to int\\.$#" - count: 1 - path: src/Controllers/Table/FindReplaceController.php - - - - message: "#^Cannot cast mixed to string\\.$#" - count: 3 - path: src/Controllers/Table/FindReplaceController.php - - message: "#^Parameter \\#1 \\$identifier of static method PhpMyAdmin\\\\Util\\:\\:backquote\\(\\) expects string\\|Stringable\\|null, mixed given\\.$#" count: 16 @@ -4472,21 +3922,6 @@ parameters: count: 1 path: src/Controllers/Table/IndexRenameController.php - - - message: "#^Parameter \\#1 \\$index of method PhpMyAdmin\\\\Table\\\\Table\\:\\:getIndex\\(\\) expects string, mixed given\\.$#" - count: 2 - path: src/Controllers/Table/IndexRenameController.php - - - - message: "#^Parameter \\#1 \\$name of method PhpMyAdmin\\\\Index\\:\\:setName\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Table/IndexRenameController.php - - - - message: "#^Parameter \\#1 \\$oldIndexName of method PhpMyAdmin\\\\Table\\\\Indexes\\:\\:getSqlQueryForRename\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Table/IndexRenameController.php - - message: "#^Parameter \\#1 \\$params of static method PhpMyAdmin\\\\Url\\:\\:getCommon\\(\\) expects array\\, mixed given\\.$#" count: 1 @@ -4806,11 +4241,6 @@ parameters: count: 1 path: src/Controllers/Table/ReplaceController.php - - - message: "#^Parameter \\#1 \\$name of class PhpMyAdmin\\\\Table\\\\Table constructor expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Table/ReplaceController.php - - message: "#^Parameter \\#1 \\$oneWhereClause of method PhpMyAdmin\\\\InsertEdit\\:\\:setSessionForEditNext\\(\\) expects string, mixed given\\.$#" count: 1 @@ -4831,21 +4261,11 @@ parameters: count: 1 path: src/Controllers/Table/ReplaceController.php - - - message: "#^Parameter \\#1 \\$string of function parse_str expects string, mixed given\\.$#" - count: 2 - path: src/Controllers/Table/ReplaceController.php - - message: "#^Parameter \\#1 \\$urlParams of method PhpMyAdmin\\\\InsertEdit\\:\\:getErrorUrl\\(\\) expects array, mixed given\\.$#" count: 1 path: src/Controllers/Table/ReplaceController.php - - - message: "#^Parameter \\#2 \\$dbName of class PhpMyAdmin\\\\Table\\\\Table constructor expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Table/ReplaceController.php - - message: "#^Parameter \\#2 \\$relationField of method PhpMyAdmin\\\\InsertEdit\\:\\:getLinkForRelationalDisplayField\\(\\) expects string, \\(int\\|string\\) given\\.$#" count: 1 @@ -4977,11 +4397,6 @@ parameters: count: 1 path: src/Controllers/Table/SqlController.php - - - message: "#^Parameter \\#1 \\$string of function htmlspecialchars expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Table/SqlController.php - - message: "#^Parameter \\#3 \\$query of method PhpMyAdmin\\\\SqlQueryForm\\:\\:getHtml\\(\\) expects bool\\|string, mixed given\\.$#" count: 1 @@ -5012,11 +4427,6 @@ parameters: count: 1 path: src/Controllers/Table/Structure/CentralColumnsAddController.php - - - message: "#^Parameter \\#4 \\$containingTable of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:syncUniqueColumns\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Table/Structure/CentralColumnsAddController.php - - message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" count: 1 @@ -5347,16 +4757,6 @@ parameters: count: 1 path: src/Controllers/Table/TrackingController.php - - - message: "#^Cannot cast mixed to int\\.$#" - count: 2 - path: src/Controllers/Table/TrackingController.php - - - - message: "#^Cannot cast mixed to string\\.$#" - count: 1 - path: src/Controllers/Table/TrackingController.php - - message: "#^Parameter \\#1 \\$params of static method PhpMyAdmin\\\\Url\\:\\:getCommon\\(\\) expects array\\, mixed given\\.$#" count: 1 @@ -5515,11 +4915,6 @@ parameters: count: 1 path: src/Controllers/Table/ZoomSearchController.php - - - message: "#^Parameter \\#1 \\$database of method PhpMyAdmin\\\\DatabaseInterface\\:\\:getTables\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/TableController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -5594,36 +4989,16 @@ parameters: count: 1 path: src/Controllers/UserPasswordController.php - - - message: "#^Parameter \\#1 \\$password of method PhpMyAdmin\\\\UserPassword\\:\\:changePassword\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/UserPasswordController.php - - - - message: "#^Parameter \\#1 \\$pmaPw of method PhpMyAdmin\\\\UserPassword\\:\\:setChangePasswordMsg\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/UserPasswordController.php - - message: "#^Parameter \\#1 \\$username of method PhpMyAdmin\\\\UserPassword\\:\\:getFormForChangePassword\\(\\) expects string\\|null, mixed given\\.$#" count: 1 path: src/Controllers/UserPasswordController.php - - - message: "#^Parameter \\#2 \\$authenticationPlugin of method PhpMyAdmin\\\\UserPassword\\:\\:changePassword\\(\\) expects string\\|null, mixed given\\.$#" - count: 1 - path: src/Controllers/UserPasswordController.php - - message: "#^Parameter \\#2 \\$hostname of method PhpMyAdmin\\\\UserPassword\\:\\:getFormForChangePassword\\(\\) expects string\\|null, mixed given\\.$#" count: 1 path: src/Controllers/UserPasswordController.php - - - message: "#^Parameter \\#2 \\$pmaPw2 of method PhpMyAdmin\\\\UserPassword\\:\\:setChangePasswordMsg\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/UserPasswordController.php - - message: """ #^Call to deprecated method getInstance\\(\\) of class PhpMyAdmin\\\\Config\\: @@ -11297,14 +10672,9 @@ parameters: count: 1 path: src/Plugins/Import/ImportCsv.php - - - message: "#^Cannot cast mixed to int\\.$#" - count: 1 - path: src/Plugins/Import/ImportCsv.php - - message: "#^Cannot cast mixed to string\\.$#" - count: 8 + count: 1 path: src/Plugins/Import/ImportCsv.php - @@ -11358,11 +10728,6 @@ parameters: count: 2 path: src/Plugins/Import/ImportLdi.php - - - message: "#^Cannot cast mixed to string\\.$#" - count: 5 - path: src/Plugins/Import/ImportLdi.php - - message: "#^Method PhpMyAdmin\\\\Plugins\\\\Import\\\\ImportLdi\\:\\:doImport\\(\\) should return array\\ but returns mixed\\.$#" count: 1 diff --git a/psalm-baseline.xml b/psalm-baseline.xml index cc66304969..64d35f1d4f 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -828,9 +828,6 @@ - - getParsedBodyParam('selectedTable')]]> - @@ -866,40 +863,11 @@ - - - - - - - - - getParsedBodyParam('DB1')]]> - getParsedBodyParam('DB2')]]> - getParsedBodyParam('F1')]]> - getParsedBodyParam('F1')]]> - getParsedBodyParam('F2')]]> - getParsedBodyParam('F2')]]> - getParsedBodyParam('T1')]]> - getParsedBodyParam('T1')]]> - getParsedBodyParam('T2')]]> - getParsedBodyParam('T2')]]> - getParsedBodyParam('field')]]> - getParsedBodyParam('index')]]> - getParsedBodyParam('on_delete')]]> - getParsedBodyParam('on_update')]]> - getParsedBodyParam('selected_page')]]> - getParsedBodyParam('selected_value')]]> - getParsedBodyParam('selected_value')]]> - getParsedBodyParam('selected_value')]]> - getParsedBodyParam('value')]]> getQueryParam('db')]]> getQueryParam('db')]]> getQueryParam('db')]]> - - @@ -909,19 +877,20 @@ - - - - - - + + + + + + + @@ -1044,7 +1013,6 @@ getParam('db')]]> - getParsedBodyParam('sql_query')]]> @@ -1229,13 +1197,9 @@ - - - - @@ -1247,9 +1211,6 @@ - - getParsedBodyParam('add_prefix', '')]]> - @@ -1281,21 +1242,11 @@ - - getParsedBodyParam('what')]]> - - - - - - - - @@ -1396,13 +1347,6 @@ - - - - - - - @@ -1446,7 +1390,6 @@ - getParsedBodyParam('primary_connection')]]> @@ -1502,9 +1445,6 @@ getParsedBodyParam('selected')]]> - getParsedBodyParam('table')]]> - getParsedBodyParam('version')]]> - getParsedBodyParam('version')]]> @@ -1588,15 +1528,8 @@ - - - - - - - getParsedBodyParam('filename_template')]]> @@ -1716,10 +1649,7 @@ - - - @@ -1878,7 +1808,6 @@ - config->get('TempDir')]]> @@ -1942,7 +1871,7 @@ - getParsedBodyParam('import_type')]]> + getParsedBodyParamAsString('import_type', '')]]> @@ -1987,20 +1916,6 @@ - - - - - - - - - - - - - - @@ -2016,9 +1931,6 @@ - - - @@ -2049,18 +1961,6 @@ - - - - - - - - - - - - @@ -2073,8 +1973,6 @@ - getParsedBodyParam('newTablesName')]]> - getParsedBodyParam('pd')]]> @@ -2093,7 +1991,6 @@ - getParsedBodyParam('pd')]]> @@ -2105,7 +2002,6 @@ - getParsedBodyParam('newTables')]]> @@ -2128,8 +2024,6 @@ - getParsedBodyParam('pd')]]> - getParsedBodyParam('tables')]]> @@ -2147,19 +2041,12 @@ - - - - - - - @@ -2173,7 +2060,6 @@ - getParsedBodyParam('comment')]]> @@ -2250,15 +2136,9 @@ - - - - - - @@ -2270,15 +2150,9 @@ - - - - - - @@ -2290,15 +2164,9 @@ - - - - - - @@ -2310,15 +2178,9 @@ - - - - - - @@ -2334,8 +2196,6 @@ - - @@ -2344,9 +2204,7 @@ - - @@ -2387,15 +2245,9 @@ - - - - - - @@ -2407,15 +2259,9 @@ - - - - - - @@ -2425,9 +2271,6 @@ - - getParsedBodyParam('2fa_configure')]]> - @@ -2436,14 +2279,6 @@ - - - - - - - - @@ -2460,9 +2295,6 @@ - - - @@ -2504,7 +2336,6 @@ - getParsedBodyParam('primary_connection')]]> $database['SCHEMA_NAME']]]]> @@ -2618,11 +2449,6 @@ - getParsedBodyParam('old_hostname')]]> - getParsedBodyParam('old_hostname', '')]]> - getParsedBodyParam('old_username')]]> - getParsedBodyParam('old_username', '')]]> - getParsedBodyParam('userGroup', '')]]> getQueryParam('initial')]]> @@ -2656,9 +2482,6 @@ - getParsedBodyParam('hostname', '')]]> - getParsedBodyParam('pma_pw', '')]]> - getParsedBodyParam('username', '')]]> @@ -2695,12 +2518,8 @@ - - - - @@ -2721,10 +2540,6 @@ - - getParsedBodyParam('varName')]]> - getParsedBodyParam('varValue')]]> - @@ -2736,10 +2551,6 @@ - - getParsedBodyParam('database', '')]]> - getParsedBodyParam('query', '')]]> - @@ -2809,8 +2620,6 @@ - - data->status['Aborted_clients']]]> data->status['Aborted_clients'] * $hourFactor]]> data->status['Aborted_clients'] * 100 / $this->data->status['Connections']]]> @@ -2831,7 +2640,6 @@ - data->status['Aborted_clients']]]> @@ -2894,12 +2702,6 @@ - - getParsedBodyParam('userGroup')]]> - getParsedBodyParam('userGroup')]]> - getParsedBodyParam('userGroup')]]> - getParsedBodyParam('userGroup')]]> - @@ -2981,10 +2783,6 @@ - - - - @@ -2993,27 +2791,11 @@ - - - - - - - - - - - - - - - - @@ -3206,10 +2988,6 @@ - - - - @@ -3265,13 +3043,11 @@ - - @@ -3455,15 +3231,8 @@ - - - - - - - @@ -3660,12 +3429,8 @@ - - getParsedBodyParam('db')]]> - getParsedBodyParam('table')]]> - getParsedBodyParam('transform_fields_list')]]> @@ -3694,7 +3459,6 @@ - @@ -3712,7 +3476,6 @@ - @@ -3776,13 +3539,11 @@ - getQueryParam('sql_query', true)]]> - @@ -3806,9 +3567,6 @@ - - getParsedBodyParam('table')]]> - @@ -4108,9 +3866,6 @@ - - getParsedBodyParam('db')]]> - @@ -4203,17 +3958,9 @@ getDisplay()]]> - - - - getParsedBodyParam('authentication_plugin')]]> - - - - diff --git a/src/Controllers/BrowseForeignersController.php b/src/Controllers/BrowseForeignersController.php index b74462536d..84333f64d9 100644 --- a/src/Controllers/BrowseForeignersController.php +++ b/src/Controllers/BrowseForeignersController.php @@ -24,22 +24,14 @@ final class BrowseForeignersController implements InvocableController public function __invoke(ServerRequest $request): Response { - /** @var string|null $database */ - $database = $request->getParsedBodyParam('db'); - /** @var string|null $table */ - $table = $request->getParsedBodyParam('table'); - /** @var string|null $field */ - $field = $request->getParsedBodyParam('field'); - /** @var string $fieldKey */ - $fieldKey = $request->getParsedBodyParam('fieldkey', ''); - /** @var string $data */ - $data = $request->getParsedBodyParam('data', ''); - /** @var string|null $foreignShowAll */ - $foreignShowAll = $request->getParsedBodyParam('foreign_showAll'); - /** @var string $foreignFilter */ - $foreignFilter = $request->getParsedBodyParam('foreign_filter', ''); - /** @var string|null $rownumber */ - $rownumber = $request->getParsedBodyParam('rownumber'); + $database = $request->getParsedBodyParamAsStringOrNull('db'); + $table = $request->getParsedBodyParamAsStringOrNull('table'); + $field = $request->getParsedBodyParamAsStringOrNull('field'); + $fieldKey = $request->getParsedBodyParamAsString('fieldkey', ''); + $data = $request->getParsedBodyParamAsString('data', ''); + $foreignShowAll = $request->getParsedBodyParamAsStringOrNull('foreign_showAll'); + $foreignFilter = $request->getParsedBodyParamAsString('foreign_filter', ''); + $rownumber = $request->getParsedBodyParamAsStringOrNull('rownumber'); if (! isset($database, $table, $field)) { return $this->response->response(); @@ -50,7 +42,7 @@ final class BrowseForeignersController implements InvocableController $header->disableMenuAndConsole(); $header->setBodyId('body_browse_foreigners'); - $pos = (int) $request->getParsedBodyParam('pos'); + $pos = (int) $request->getParsedBodyParamAsStringOrNull('pos'); $foreignLimit = $this->browseForeigners->getForeignLimit($foreignShowAll, $pos); $foreignData = $this->relation->getForeignData( $this->relation->getForeigners($database, $table), diff --git a/src/Controllers/Console/Bookmark/AddController.php b/src/Controllers/Console/Bookmark/AddController.php index 54d1eaf964..4f586c14cc 100644 --- a/src/Controllers/Console/Bookmark/AddController.php +++ b/src/Controllers/Console/Bookmark/AddController.php @@ -12,7 +12,6 @@ use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\ResponseRenderer; use function __; -use function is_string; final class AddController implements InvocableController { @@ -24,16 +23,10 @@ final class AddController implements InvocableController public function __invoke(ServerRequest $request): Response { - $db = $request->getParsedBodyParam('db'); - $label = $request->getParsedBodyParam('label'); - $bookmarkQuery = $request->getParsedBodyParam('bookmark_query'); - $shared = $request->getParsedBodyParam('shared'); - - if (! is_string($label) || ! is_string($db) || ! is_string($bookmarkQuery) || ! is_string($shared)) { - $this->response->addJSON('message', __('Incomplete params')); - - return $this->response->response(); - } + $db = $request->getParsedBodyParamAsString('db'); + $label = $request->getParsedBodyParamAsString('label'); + $bookmarkQuery = $request->getParsedBodyParamAsString('bookmark_query'); + $shared = $request->getParsedBodyParamAsString('shared'); $bookmark = $this->bookmarkRepository->createBookmark( $bookmarkQuery, diff --git a/src/Controllers/Database/CentralColumns/PopulateColumnsController.php b/src/Controllers/Database/CentralColumns/PopulateColumnsController.php index 7353b0080a..fb5725a857 100644 --- a/src/Controllers/Database/CentralColumns/PopulateColumnsController.php +++ b/src/Controllers/Database/CentralColumns/PopulateColumnsController.php @@ -23,7 +23,7 @@ final class PopulateColumnsController implements InvocableController { $columns = $this->centralColumns->getColumnsNotInCentralList( Current::$database, - $request->getParsedBodyParam('selectedTable'), + $request->getParsedBodyParamAsString('selectedTable'), ); $this->response->render('database/central_columns/populate_columns', ['columns' => $columns]); diff --git a/src/Controllers/Database/DesignerController.php b/src/Controllers/Database/DesignerController.php index c9824c13ff..fdcd74543d 100644 --- a/src/Controllers/Database/DesignerController.php +++ b/src/Controllers/Database/DesignerController.php @@ -41,12 +41,12 @@ final class DesignerController implements InvocableController $GLOBALS['message'] ??= null; $GLOBALS['errorUrl'] ??= null; - $db = $request->getParsedBodyParam('db'); - $table = $request->getParsedBodyParam('table'); + $db = $request->getParsedBodyParamAsStringOrNull('db'); + $table = $request->getParsedBodyParamAsStringOrNull('table'); if ($request->hasBodyParam('dialog')) { $html = ''; - $dialog = $request->getParsedBodyParam('dialog'); + $dialog = $request->getParsedBodyParamAsString('dialog'); if ($dialog === 'edit') { $html = $this->databaseDesigner->getHtmlForEditOrDeletePages($db, 'editPage'); } elseif ($dialog === 'delete') { @@ -56,7 +56,7 @@ final class DesignerController implements InvocableController } elseif ($dialog === 'export') { $html = $this->databaseDesigner->getHtmlForSchemaExport( $db, - (int) $request->getParsedBodyParam('selected_page'), + (int) $request->getParsedBodyParamAsStringOrNull('selected_page'), ); } elseif ($dialog === 'add_table') { // Pass the db and table to the getTablesInfo so we only have the table we asked for @@ -85,65 +85,74 @@ final class DesignerController implements InvocableController } if ($request->hasBodyParam('operation')) { - $operation = $request->getParsedBodyParam('operation'); + $operation = $request->getParsedBodyParamAsString('operation'); if ($operation === 'deletePage') { - $success = $this->designerCommon->deletePage($request->getParsedBodyParam('selected_page')); + $success = $this->designerCommon->deletePage( + (int) $request->getParsedBodyParamAsString('selected_page'), + ); $this->response->setRequestStatus($success); } elseif ($operation === 'savePage') { - if ($request->getParsedBodyParam('save_page') === 'same') { - $page = $request->getParsedBodyParam('selected_page'); - } elseif ($this->designerCommon->getPageExists($request->getParsedBodyParam('selected_value'))) { + if ($request->getParsedBodyParamAsString('save_page') === 'same') { + $page = $request->getParsedBodyParamAsString('selected_page'); + } elseif ( + $this->designerCommon->getPageExists( + $request->getParsedBodyParamAsString('selected_value'), + ) + ) { $this->response->addJSON( 'message', sprintf( /* l10n: The user tries to save a page with an existing name in Designer */ __('There already exists a page named "%s" please rename it to something else.'), - htmlspecialchars($request->getParsedBodyParam('selected_value')), + htmlspecialchars($request->getParsedBodyParamAsString('selected_value')), ), ); $this->response->setRequestStatus(false); return $this->response->response(); } else { - $page = $this->designerCommon->createNewPage($request->getParsedBodyParam('selected_value'), $db); + $page = $this->designerCommon->createNewPage( + $request->getParsedBodyParamAsString('selected_value'), + $db, + ); $this->response->addJSON('id', $page); } - $success = $this->designerCommon->saveTablePositions($page); + $success = $this->designerCommon->saveTablePositions((int) $page); $this->response->setRequestStatus($success); } elseif ($operation === 'setDisplayField') { [ $success, $GLOBALS['message'], - ] = $this->designerCommon->saveDisplayField($db, $table, $request->getParsedBodyParam('field')); + ] = $this->designerCommon->saveDisplayField($db, $table, $request->getParsedBodyParamAsString('field')); $this->response->setRequestStatus($success); $this->response->addJSON('message', $GLOBALS['message']); } elseif ($operation === 'addNewRelation') { [$success, $GLOBALS['message']] = $this->designerCommon->addNewRelation( - $request->getParsedBodyParam('T1'), - $request->getParsedBodyParam('F1'), - $request->getParsedBodyParam('T2'), - $request->getParsedBodyParam('F2'), - $request->getParsedBodyParam('on_delete'), - $request->getParsedBodyParam('on_update'), - $request->getParsedBodyParam('DB1'), - $request->getParsedBodyParam('DB2'), + $request->getParsedBodyParamAsString('T1'), + $request->getParsedBodyParamAsString('F1'), + $request->getParsedBodyParamAsString('T2'), + $request->getParsedBodyParamAsString('F2'), + $request->getParsedBodyParamAsString('on_delete'), + $request->getParsedBodyParamAsString('on_update'), + $request->getParsedBodyParamAsString('DB1'), + $request->getParsedBodyParamAsString('DB2'), ); $this->response->setRequestStatus($success); $this->response->addJSON('message', $GLOBALS['message']); } elseif ($operation === 'removeRelation') { [$success, $GLOBALS['message']] = $this->designerCommon->removeRelation( - $request->getParsedBodyParam('T1'), - $request->getParsedBodyParam('F1'), - $request->getParsedBodyParam('T2'), - $request->getParsedBodyParam('F2'), + $request->getParsedBodyParamAsString('T1'), + $request->getParsedBodyParamAsString('F1'), + $request->getParsedBodyParamAsString('T2'), + $request->getParsedBodyParamAsString('F2'), ); $this->response->setRequestStatus($success); $this->response->addJSON('message', $GLOBALS['message']); } elseif ($operation === 'save_setting_value') { $success = $this->designerCommon->saveSetting( - $request->getParsedBodyParam('index'), - $request->getParsedBodyParam('value'), + $request->getParsedBodyParamAsString('index'), + $request->getParsedBodyParamAsString('value'), ); $this->response->setRequestStatus($success); } diff --git a/src/Controllers/Database/MultiTableQuery/QueryController.php b/src/Controllers/Database/MultiTableQuery/QueryController.php index 866453b57f..536972f4c5 100644 --- a/src/Controllers/Database/MultiTableQuery/QueryController.php +++ b/src/Controllers/Database/MultiTableQuery/QueryController.php @@ -19,7 +19,7 @@ final class QueryController implements InvocableController public function __invoke(ServerRequest $request): Response { $this->response->addHTML(MultiTableQuery::displayResults( - $request->getParsedBodyParam('sql_query'), + $request->getParsedBodyParamAsString('sql_query'), $request->getParam('db'), )); diff --git a/src/Controllers/Database/SqlController.php b/src/Controllers/Database/SqlController.php index 5c3808f0db..459ee8d7b6 100644 --- a/src/Controllers/Database/SqlController.php +++ b/src/Controllers/Database/SqlController.php @@ -76,7 +76,7 @@ class SqlController implements InvocableController */ $GLOBALS['goto'] = Url::getFromRoute('/database/sql'); $GLOBALS['back'] = $GLOBALS['goto']; - $delimiter = $request->getParsedBodyParam('delimiter', ';'); + $delimiter = $request->getParsedBodyParamAsString('delimiter', ';'); $this->response->addHTML($this->sqlQueryForm->getHtml( Current::$database, diff --git a/src/Controllers/Database/SqlFormatController.php b/src/Controllers/Database/SqlFormatController.php index 7aa4f80dbe..d47e5bf234 100644 --- a/src/Controllers/Database/SqlFormatController.php +++ b/src/Controllers/Database/SqlFormatController.php @@ -21,9 +21,8 @@ final class SqlFormatController implements InvocableController public function __invoke(ServerRequest $request): Response { - /** @var string $query */ - $query = $request->getParsedBodyParam('sql', ''); - if ($request->getParsedBodyParam('formatSingleLine') === 'true') { + $query = $request->getParsedBodyParamAsString('sql', ''); + if ($request->getParsedBodyParamAsString('formatSingleLine') === 'true') { $this->response->addJSON(['sql' => Formatter::format($query, ['line_ending' => ' ', 'indentation' => ''])]); } else { $this->response->addJSON(['sql' => Formatter::format($query)]); diff --git a/src/Controllers/Database/Structure/AddPrefixTableController.php b/src/Controllers/Database/Structure/AddPrefixTableController.php index a6673277f9..b36e6300a9 100644 --- a/src/Controllers/Database/Structure/AddPrefixTableController.php +++ b/src/Controllers/Database/Structure/AddPrefixTableController.php @@ -31,7 +31,7 @@ final class AddPrefixTableController implements InvocableController $this->dbi->selectDb(Current::$database); foreach ($selected as $selectedValue) { - $newTableName = $request->getParsedBodyParam('add_prefix', '') . $selectedValue; + $newTableName = $request->getParsedBodyParamAsString('add_prefix', '') . $selectedValue; $aQuery = 'ALTER TABLE ' . Util::backquote($selectedValue) . ' RENAME ' . Util::backquote($newTableName); $GLOBALS['sql_query'] .= $aQuery . ';' . "\n"; diff --git a/src/Controllers/Database/Structure/CopyTableController.php b/src/Controllers/Database/Structure/CopyTableController.php index f44b85658f..47419f6515 100644 --- a/src/Controllers/Database/Structure/CopyTableController.php +++ b/src/Controllers/Database/Structure/CopyTableController.php @@ -30,8 +30,7 @@ final class CopyTableController implements InvocableController { /** @var string[] $selected */ $selected = $request->getParsedBodyParam('selected', []); - /** @var string $targetDb */ - $targetDb = $request->getParsedBodyParam('target_db'); + $targetDb = $request->getParsedBodyParamAsString('target_db'); $userPrivileges = $this->userPrivilegesFactory->getPrivileges(); @@ -41,7 +40,7 @@ final class CopyTableController implements InvocableController $selectedValue, $targetDb, $selectedValue, - MoveScope::from($request->getParsedBodyParam('what')), + MoveScope::from($request->getParsedBodyParamAsString('what')), MoveMode::SingleTable, $request->getParsedBodyParam('drop_if_exists') === 'true', ); diff --git a/src/Controllers/Database/Structure/CopyTableWithPrefixController.php b/src/Controllers/Database/Structure/CopyTableWithPrefixController.php index 661b5a102d..5455f16ba6 100644 --- a/src/Controllers/Database/Structure/CopyTableWithPrefixController.php +++ b/src/Controllers/Database/Structure/CopyTableWithPrefixController.php @@ -29,13 +29,13 @@ final class CopyTableWithPrefixController implements InvocableController { /** @var string[] $selected */ $selected = $request->getParsedBodyParam('selected', []); - $fromPrefix = $request->getParsedBodyParam('from_prefix'); - $toPrefix = $request->getParsedBodyParam('to_prefix'); + $fromPrefix = $request->getParsedBodyParamAsString('from_prefix', ''); + $toPrefix = $request->getParsedBodyParamAsString('to_prefix'); $dropIfExists = $request->getParsedBodyParam('drop_if_exists') === 'true'; foreach ($selected as $selectedValue) { - $newTableName = $toPrefix . mb_substr($selectedValue, mb_strlen((string) $fromPrefix)); + $newTableName = $toPrefix . mb_substr($selectedValue, mb_strlen($fromPrefix)); $this->tableMover->moveCopy( Current::$database, diff --git a/src/Controllers/Database/Structure/ReplacePrefixController.php b/src/Controllers/Database/Structure/ReplacePrefixController.php index e969d1acb9..073d0753d9 100644 --- a/src/Controllers/Database/Structure/ReplacePrefixController.php +++ b/src/Controllers/Database/Structure/ReplacePrefixController.php @@ -32,15 +32,15 @@ final class ReplacePrefixController implements InvocableController { /** @var string[] $selected */ $selected = $request->getParsedBodyParam('selected', []); - $fromPrefix = $request->getParsedBodyParam('from_prefix', ''); - $toPrefix = $request->getParsedBodyParam('to_prefix', ''); + $fromPrefix = $request->getParsedBodyParamAsString('from_prefix', ''); + $toPrefix = $request->getParsedBodyParamAsString('to_prefix', ''); $GLOBALS['sql_query'] = ''; $this->dbi->selectDb(Current::$database); foreach ($selected as $selectedValue) { - $subFromPrefix = mb_substr($selectedValue, 0, mb_strlen((string) $fromPrefix)); + $subFromPrefix = mb_substr($selectedValue, 0, mb_strlen($fromPrefix)); if ($subFromPrefix === $fromPrefix) { $newTableName = $toPrefix . mb_substr($selectedValue, mb_strlen($fromPrefix)); diff --git a/src/Controllers/Database/StructureController.php b/src/Controllers/Database/StructureController.php index 3c4e023800..630a341174 100644 --- a/src/Controllers/Database/StructureController.php +++ b/src/Controllers/Database/StructureController.php @@ -165,7 +165,7 @@ final class StructureController implements InvocableController ]); } - $this->replicationInfo->load($request->getParsedBodyParam('primary_connection')); + $this->replicationInfo->load($request->getParsedBodyParamAsStringOrNull('primary_connection')); $replicaInfo = $this->replicationInfo->getReplicaInfo(); $this->pageSettings->init('DbStructure'); diff --git a/src/Controllers/Database/TrackingController.php b/src/Controllers/Database/TrackingController.php index 4a7581ce4a..81a9d2aebb 100644 --- a/src/Controllers/Database/TrackingController.php +++ b/src/Controllers/Database/TrackingController.php @@ -72,7 +72,7 @@ final class TrackingController implements InvocableController $isSystemSchema = Utilities::isSystemSchema(Current::$database); if ($request->hasBodyParam('delete_tracking') && $request->hasBodyParam('table')) { - $this->tracking->deleteTracking(Current::$database, $request->getParsedBodyParam('table')); + $this->tracking->deleteTracking(Current::$database, $request->getParsedBodyParamAsString('table')); $this->response->addHTML(Message::success( __('Tracking data deleted successfully.'), )->getDisplay()); @@ -80,14 +80,14 @@ final class TrackingController implements InvocableController $this->tracking->createTrackingForMultipleTables( Current::$database, $request->getParsedBodyParam('selected'), - $request->getParsedBodyParam('version'), + $request->getParsedBodyParamAsString('version'), ); $this->response->addHTML(Message::success( sprintf( __( 'Version %1$s was created for selected tables, tracking is active for them.', ), - htmlspecialchars($request->getParsedBodyParam('version')), + htmlspecialchars($request->getParsedBodyParamAsString('version')), ), )->getDisplay()); } elseif ($request->hasBodyParam('submit_mult')) { diff --git a/src/Controllers/ErrorReportController.php b/src/Controllers/ErrorReportController.php index d6e71bc018..fc673daa81 100644 --- a/src/Controllers/ErrorReportController.php +++ b/src/Controllers/ErrorReportController.php @@ -41,12 +41,9 @@ final class ErrorReportController implements InvocableController public function __invoke(ServerRequest $request): Response { - /** @var string $exceptionType */ - $exceptionType = $request->getParsedBodyParam('exception_type', ''); - /** @var string|null $automatic */ - $automatic = $request->getParsedBodyParam('automatic'); - /** @var string|null $alwaysSend */ - $alwaysSend = $request->getParsedBodyParam('always_send'); + $exceptionType = $request->getParsedBodyParamAsString('exception_type', ''); + $automatic = $request->getParsedBodyParamAsStringOrNull('automatic'); + $alwaysSend = $request->getParsedBodyParamAsStringOrNull('always_send'); if (! in_array($exceptionType, ['js', 'php'], true)) { return $this->response->response(); diff --git a/src/Controllers/Export/ExportController.php b/src/Controllers/Export/ExportController.php index bcc3b9f982..49c293046c 100644 --- a/src/Controllers/Export/ExportController.php +++ b/src/Controllers/Export/ExportController.php @@ -70,23 +70,16 @@ final class ExportController implements InvocableController /** @var array $postParams */ $postParams = $request->getParsedBody(); - /** @var string $whatParam */ - $whatParam = $request->getParsedBodyParam('what', ''); - /** @var string|null $quickOrCustom */ - $quickOrCustom = $request->getParsedBodyParam('quick_or_custom'); - /** @var string|null $outputFormat */ - $outputFormat = $request->getParsedBodyParam('output_format'); - /** @var string $compressionParam */ - $compressionParam = $request->getParsedBodyParam('compression', ''); - /** @var string|null $asSeparateFiles */ - $asSeparateFiles = $request->getParsedBodyParam('as_separate_files'); - /** @var string|null $quickExportOnServer */ - $quickExportOnServer = $request->getParsedBodyParam('quick_export_onserver'); - /** @var string|null $onServerParam */ - $onServerParam = $request->getParsedBodyParam('onserver'); + $whatParam = $request->getParsedBodyParamAsString('what', ''); + $quickOrCustom = $request->getParsedBodyParamAsStringOrNull('quick_or_custom'); + $outputFormat = $request->getParsedBodyParamAsStringOrNull('output_format'); + $compressionParam = $request->getParsedBodyParamAsString('compression', ''); + $asSeparateFiles = $request->getParsedBodyParamAsStringOrNull('as_separate_files'); + $quickExportOnServer = $request->getParsedBodyParamAsStringOrNull('quick_export_onserver'); + $onServerParam = $request->getParsedBodyParamAsStringOrNull('onserver'); /** @var array|null $aliasesParam */ $aliasesParam = $request->getParsedBodyParam('aliases'); - $structureOrDataForced = (bool) $request->getParsedBodyParam('structure_or_data_forced'); + $structureOrDataForced = (bool) $request->getParsedBodyParamAsStringOrNull('structure_or_data_forced'); $rememberTemplate = $request->getParsedBodyParam('remember_template'); $dbSelect = $request->getParsedBodyParam('db_select'); $tableStructure = $request->getParsedBodyParam('table_structure'); @@ -251,7 +244,7 @@ final class ExportController implements InvocableController $rememberTemplate, $exportPlugin, $GLOBALS['compression'], - $request->getParsedBodyParam('filename_template'), + $request->getParsedBodyParamAsString('filename_template'), ); } @@ -439,9 +432,9 @@ final class ExportController implements InvocableController } else { // We export just one table - $allrows = $request->getParsedBodyParam('allrows', ''); - $limitTo = $request->getParsedBodyParam('limit_to', '0'); - $limitFrom = $request->getParsedBodyParam('limit_from', '0'); + $allrows = $request->getParsedBodyParamAsString('allrows', ''); + $limitTo = $request->getParsedBodyParamAsString('limit_to', '0'); + $limitFrom = $request->getParsedBodyParamAsString('limit_from', '0'); if ($lockTables) { try { diff --git a/src/Controllers/Export/Template/CreateController.php b/src/Controllers/Export/Template/CreateController.php index 191bf1ed41..c751b13b7e 100644 --- a/src/Controllers/Export/Template/CreateController.php +++ b/src/Controllers/Export/Template/CreateController.php @@ -28,14 +28,10 @@ final class CreateController implements InvocableController public function __invoke(ServerRequest $request): Response { - /** @var string $exportType */ - $exportType = $request->getParsedBodyParam('exportType', ''); - /** @var string $templateName */ - $templateName = $request->getParsedBodyParam('templateName', ''); - /** @var string $templateData */ - $templateData = $request->getParsedBodyParam('templateData', ''); - /** @var string|null $templateId */ - $templateId = $request->getParsedBodyParam('template_id'); + $exportType = $request->getParsedBodyParamAsString('exportType', ''); + $templateName = $request->getParsedBodyParamAsString('templateName', ''); + $templateData = $request->getParsedBodyParamAsString('templateData', ''); + $templateId = $request->getParsedBodyParamAsStringOrNull('template_id'); $exportTemplatesFeature = $this->relation->getRelationParameters()->exportTemplatesFeature; if ($exportTemplatesFeature === null) { diff --git a/src/Controllers/Export/Template/DeleteController.php b/src/Controllers/Export/Template/DeleteController.php index a18f513d5a..e37d07b3ba 100644 --- a/src/Controllers/Export/Template/DeleteController.php +++ b/src/Controllers/Export/Template/DeleteController.php @@ -23,7 +23,7 @@ final class DeleteController implements InvocableController public function __invoke(ServerRequest $request): Response { - $templateId = (int) $request->getParsedBodyParam('templateId'); + $templateId = (int) $request->getParsedBodyParamAsStringOrNull('templateId'); $exportTemplatesFeature = $this->relation->getRelationParameters()->exportTemplatesFeature; if ($exportTemplatesFeature === null) { diff --git a/src/Controllers/Export/Template/LoadController.php b/src/Controllers/Export/Template/LoadController.php index b681f6b4da..c3b671171d 100644 --- a/src/Controllers/Export/Template/LoadController.php +++ b/src/Controllers/Export/Template/LoadController.php @@ -24,7 +24,7 @@ final class LoadController implements InvocableController public function __invoke(ServerRequest $request): Response { - $templateId = (int) $request->getParsedBodyParam('templateId'); + $templateId = (int) $request->getParsedBodyParamAsStringOrNull('templateId'); $exportTemplatesFeature = $this->relation->getRelationParameters()->exportTemplatesFeature; if ($exportTemplatesFeature === null) { diff --git a/src/Controllers/Export/Template/UpdateController.php b/src/Controllers/Export/Template/UpdateController.php index 135cd8cd57..2c0d1a1f34 100644 --- a/src/Controllers/Export/Template/UpdateController.php +++ b/src/Controllers/Export/Template/UpdateController.php @@ -24,9 +24,8 @@ final class UpdateController implements InvocableController public function __invoke(ServerRequest $request): Response { - $templateId = (int) $request->getParsedBodyParam('templateId'); - /** @var string $templateData */ - $templateData = $request->getParsedBodyParam('templateData', ''); + $templateId = (int) $request->getParsedBodyParamAsStringOrNull('templateId'); + $templateData = $request->getParsedBodyParamAsString('templateData', ''); $exportTemplatesFeature = $this->relation->getRelationParameters()->exportTemplatesFeature; if ($exportTemplatesFeature === null) { diff --git a/src/Controllers/GisDataEditorController.php b/src/Controllers/GisDataEditorController.php index 6dce65b443..c4c1d8d567 100644 --- a/src/Controllers/GisDataEditorController.php +++ b/src/Controllers/GisDataEditorController.php @@ -45,16 +45,12 @@ final class GisDataEditorController implements InvocableController public function __invoke(ServerRequest $request): Response { - /** @var string|null $field */ - $field = $request->getParsedBodyParam('field'); + $field = $request->getParsedBodyParamAsStringOrNull('field'); /** @var array|null $gisDataParam */ $gisDataParam = $request->getParsedBodyParam('gis_data'); - /** @var string $type */ - $type = $request->getParsedBodyParam('type', 'GEOMETRY'); - /** @var string|null $value */ - $value = $request->getParsedBodyParam('value'); - /** @var string|null $inputName */ - $inputName = $request->getParsedBodyParam('input_name'); + $type = $request->getParsedBodyParamAsString('type', 'GEOMETRY'); + $value = $request->getParsedBodyParamAsStringOrNull('value'); + $inputName = $request->getParsedBodyParamAsStringOrNull('input_name'); if (! isset($field)) { return $this->response->response(); diff --git a/src/Controllers/HomeController.php b/src/Controllers/HomeController.php index eae65ec43c..2e83ccd416 100644 --- a/src/Controllers/HomeController.php +++ b/src/Controllers/HomeController.php @@ -78,7 +78,7 @@ final class HomeController implements InvocableController // This is for $cfg['ShowDatabasesNavigationAsTree'] = false; // See: https://github.com/phpmyadmin/phpmyadmin/issues/16520 // The DB is defined here and sent to the JS front-end to refresh the DB tree - Current::$database = $request->getParsedBodyParam('db', ''); + Current::$database = $request->getParsedBodyParamAsString('db', ''); Current::$table = ''; $GLOBALS['show_query'] = '1'; $GLOBALS['errorUrl'] = Url::getFromRoute('/'); diff --git a/src/Controllers/Import/ImportController.php b/src/Controllers/Import/ImportController.php index e5ee71f46d..ed6847912e 100644 --- a/src/Controllers/Import/ImportController.php +++ b/src/Controllers/Import/ImportController.php @@ -29,7 +29,6 @@ use PhpMyAdmin\Url; use PhpMyAdmin\Util; use PhpMyAdmin\Utils\ForeignKey; use Throwable; -use Webmozart\Assert\Assert; use function __; use function _ngettext; @@ -71,14 +70,14 @@ final class ImportController implements InvocableController $GLOBALS['error'] ??= null; $GLOBALS['result'] ??= null; - ImportSettings::$charsetOfFile = (string) $request->getParsedBodyParam('charset_of_file'); - $format = $request->getParsedBodyParam('format', ''); - ImportSettings::$importType = (string) $request->getParsedBodyParam('import_type'); + ImportSettings::$charsetOfFile = $request->getParsedBodyParamAsString('charset_of_file', ''); + $format = $request->getParsedBodyParamAsString('format', ''); + ImportSettings::$importType = $request->getParsedBodyParamAsString('import_type', ''); $GLOBALS['is_js_confirmed'] = $request->getParsedBodyParam('is_js_confirmed'); $GLOBALS['message_to_show'] = $request->getParsedBodyParam('message_to_show'); $GLOBALS['noplugin'] = $request->getParsedBodyParam('noplugin'); - ImportSettings::$skipQueries = (int) $request->getParsedBodyParam('skip_queries'); - ImportSettings::$localImportFile = (string) $request->getParsedBodyParam('local_import_file'); + ImportSettings::$skipQueries = (int) $request->getParsedBodyParamAsStringOrNull('skip_queries'); + ImportSettings::$localImportFile = $request->getParsedBodyParamAsString('local_import_file', ''); $GLOBALS['show_as_php'] = $request->getParsedBodyParam('show_as_php'); // reset import messages for ajax request @@ -189,7 +188,6 @@ final class ImportController implements InvocableController $this->response->addJSON('console_message_id', $consoleMessageId); } - Assert::string($format); $importFormat = ImportFormat::tryFrom($format); if ($importFormat === null) { $this->response->setRequestStatus(false); @@ -262,8 +260,8 @@ final class ImportController implements InvocableController $GLOBALS['result'] = false; // Bookmark Support: get a query back from bookmark if required - $idBookmark = (int) $request->getParsedBodyParam('id_bookmark'); - $actionBookmark = (int) $request->getParsedBodyParam('action_bookmark'); + $idBookmark = (int) $request->getParsedBodyParamAsStringOrNull('id_bookmark'); + $actionBookmark = (int) $request->getParsedBodyParamAsStringOrNull('action_bookmark'); if ($idBookmark !== 0) { switch ($actionBookmark) { case 0: // bookmarked query that have to be run @@ -469,7 +467,7 @@ final class ImportController implements InvocableController // Something to skip? (because timeout has passed) if (! $GLOBALS['error'] && $request->hasBodyParam('skip')) { - $originalSkip = $skip = (int) $request->getParsedBodyParam('skip'); + $originalSkip = $skip = (int) $request->getParsedBodyParamAsStringOrNull('skip'); while ($skip > 0 && ! ImportSettings::$finished) { $this->import->getNextChunk( $importHandle ?? null, @@ -677,8 +675,8 @@ final class ImportController implements InvocableController $relation->getRelationParameters()->bookmarkFeature, Current::$database, $config->selectedServer['user'], - $request->getParsedBodyParam('sql_query'), - $request->getParsedBodyParam('bkm_label'), + $request->getParsedBodyParamAsString('sql_query'), + $request->getParsedBodyParamAsString('bkm_label'), $request->hasBodyParam('bkm_replace'), ); } @@ -705,8 +703,8 @@ final class ImportController implements InvocableController $relation->getRelationParameters()->bookmarkFeature, Current::$database, $config->selectedServer['user'], - $request->getParsedBodyParam('sql_query'), - $request->getParsedBodyParam('bkm_label'), + $request->getParsedBodyParamAsString('sql_query'), + $request->getParsedBodyParamAsString('bkm_label'), $request->hasBodyParam('bkm_replace'), ); } diff --git a/src/Controllers/Import/SimulateDmlController.php b/src/Controllers/Import/SimulateDmlController.php index 44dfc106b0..83d3252b91 100644 --- a/src/Controllers/Import/SimulateDmlController.php +++ b/src/Controllers/Import/SimulateDmlController.php @@ -42,8 +42,7 @@ final class SimulateDmlController implements InvocableController public function __invoke(ServerRequest $request): Response { - /** @var string $sqlDelimiter */ - $sqlDelimiter = $request->getParsedBodyParam('sql_delimiter', ''); + $sqlDelimiter = $request->getParsedBodyParamAsString('sql_delimiter', ''); $parser = $this->createParser($GLOBALS['sql_query'], $sqlDelimiter); $this->process($parser); diff --git a/src/Controllers/LintController.php b/src/Controllers/LintController.php index bfba70e476..6035327b4d 100644 --- a/src/Controllers/LintController.php +++ b/src/Controllers/LintController.php @@ -44,10 +44,8 @@ final class LintController implements InvocableController * * The client, which will receive the JSON response will decode the message and * and any HTML fragments that are displayed to the user will be encoded anyway. - * - * @var string $sqlQuery */ - $sqlQuery = $request->getParsedBodyParam('sql_query', ''); + $sqlQuery = $request->getParsedBodyParamAsString('sql_query', ''); $options = $request->getParsedBodyParam('options', []); $editorType = is_array($options) ? ($options['editorType'] ?? null) : null; diff --git a/src/Controllers/NavigationController.php b/src/Controllers/NavigationController.php index 06e9ee293e..7c3484bc7a 100644 --- a/src/Controllers/NavigationController.php +++ b/src/Controllers/NavigationController.php @@ -56,11 +56,11 @@ final class NavigationController implements InvocableController $relationParameters = $this->relation->getRelationParameters(); if ($relationParameters->navigationItemsHidingFeature !== null) { - $itemName = $request->getParsedBodyParam('itemName', ''); - $itemType = $request->getParsedBodyParam('itemType', ''); - $dbName = $request->getParsedBodyParam('dbName', ''); + $itemName = $request->getParsedBodyParamAsString('itemName', ''); + $itemType = $request->getParsedBodyParamAsString('itemType', ''); + $dbName = $request->getParsedBodyParamAsString('dbName', ''); - if ($request->getParsedBodyParam('hideNavItem') !== null) { + if ($request->hasBodyParam('hideNavItem')) { if ($itemName !== '' && $itemType !== '' && $dbName !== '') { $this->navigation->hideNavigationItem($itemName, $itemType, $dbName); } diff --git a/src/Controllers/Normalization/CreateNewColumnController.php b/src/Controllers/Normalization/CreateNewColumnController.php index f51ecdef04..853afa60c8 100644 --- a/src/Controllers/Normalization/CreateNewColumnController.php +++ b/src/Controllers/Normalization/CreateNewColumnController.php @@ -28,7 +28,7 @@ final class CreateNewColumnController implements InvocableController { $userPrivileges = $this->userPrivilegesFactory->getPrivileges(); - $numFields = min(4096, (int) $request->getParsedBodyParam('numFields')); + $numFields = min(4096, (int) $request->getParsedBodyParamAsStringOrNull('numFields')); $html = $this->normalization->getHtmlForCreateNewColumn( $userPrivileges, $numFields, diff --git a/src/Controllers/Normalization/FirstNormalForm/FirstStepController.php b/src/Controllers/Normalization/FirstNormalForm/FirstStepController.php index 0a41a7fe0f..f5f3f3a60b 100644 --- a/src/Controllers/Normalization/FirstNormalForm/FirstStepController.php +++ b/src/Controllers/Normalization/FirstNormalForm/FirstStepController.php @@ -26,7 +26,7 @@ final class FirstStepController implements InvocableController $this->response->addScriptFiles(['normalization.js', 'vendor/jquery/jquery.uitablefilter.js']); $normalForm = '1nf'; - $normalizeTo = $request->getParsedBodyParam('normalizeTo'); + $normalizeTo = $request->getParsedBodyParamAsString('normalizeTo', ''); if (in_array($normalizeTo, ['1nf', '2nf', '3nf'], true)) { $normalForm = $normalizeTo; } diff --git a/src/Controllers/Normalization/MoveRepeatingGroup.php b/src/Controllers/Normalization/MoveRepeatingGroup.php index 845ed2501b..d7e2ee8f3b 100644 --- a/src/Controllers/Normalization/MoveRepeatingGroup.php +++ b/src/Controllers/Normalization/MoveRepeatingGroup.php @@ -21,10 +21,10 @@ final class MoveRepeatingGroup implements InvocableController public function __invoke(ServerRequest $request): Response { - $repeatingColumns = $request->getParsedBodyParam('repeatingColumns'); - $newTable = $request->getParsedBodyParam('newTable'); - $newColumn = $request->getParsedBodyParam('newColumn'); - $primaryColumns = $request->getParsedBodyParam('primary_columns'); + $repeatingColumns = $request->getParsedBodyParamAsString('repeatingColumns'); + $newTable = $request->getParsedBodyParamAsString('newTable'); + $newColumn = $request->getParsedBodyParamAsString('newColumn'); + $primaryColumns = $request->getParsedBodyParamAsString('primary_columns'); $res = $this->normalization->moveRepeatingGroup( $repeatingColumns, $primaryColumns, diff --git a/src/Controllers/Normalization/SecondNormalForm/CreateNewTablesController.php b/src/Controllers/Normalization/SecondNormalForm/CreateNewTablesController.php index 06a0352b7d..a42cb0f34b 100644 --- a/src/Controllers/Normalization/SecondNormalForm/CreateNewTablesController.php +++ b/src/Controllers/Normalization/SecondNormalForm/CreateNewTablesController.php @@ -23,8 +23,8 @@ final class CreateNewTablesController implements InvocableController public function __invoke(ServerRequest $request): Response { - $partialDependencies = json_decode($request->getParsedBodyParam('pd'), true); - $tablesName = json_decode($request->getParsedBodyParam('newTablesName')); + $partialDependencies = json_decode($request->getParsedBodyParamAsString('pd'), true); + $tablesName = json_decode($request->getParsedBodyParamAsString('newTablesName')); $res = $this->normalization->createNewTablesFor2NF( $partialDependencies, $tablesName, diff --git a/src/Controllers/Normalization/SecondNormalForm/NewTablesController.php b/src/Controllers/Normalization/SecondNormalForm/NewTablesController.php index 7e18b6e67b..a8e75fe5fe 100644 --- a/src/Controllers/Normalization/SecondNormalForm/NewTablesController.php +++ b/src/Controllers/Normalization/SecondNormalForm/NewTablesController.php @@ -23,7 +23,7 @@ final class NewTablesController implements InvocableController public function __invoke(ServerRequest $request): Response { - $partialDependencies = json_decode($request->getParsedBodyParam('pd'), true); + $partialDependencies = json_decode($request->getParsedBodyParamAsString('pd'), true); $html = $this->normalization->getHtmlForNewTables2NF($partialDependencies, Current::$table); $this->response->addHTML($html); diff --git a/src/Controllers/Normalization/ThirdNormalForm/CreateNewTablesController.php b/src/Controllers/Normalization/ThirdNormalForm/CreateNewTablesController.php index 2b2fe75f15..66fa7508e8 100644 --- a/src/Controllers/Normalization/ThirdNormalForm/CreateNewTablesController.php +++ b/src/Controllers/Normalization/ThirdNormalForm/CreateNewTablesController.php @@ -23,7 +23,7 @@ final class CreateNewTablesController implements InvocableController public function __invoke(ServerRequest $request): Response { - $newtables = json_decode($request->getParsedBodyParam('newTables'), true); + $newtables = json_decode($request->getParsedBodyParamAsString('newTables'), true); $res = $this->normalization->createNewTablesFor3NF($newtables, Current::$database); $this->response->addJSON($res); diff --git a/src/Controllers/Normalization/ThirdNormalForm/NewTablesController.php b/src/Controllers/Normalization/ThirdNormalForm/NewTablesController.php index 956ef0667e..3f5404f278 100644 --- a/src/Controllers/Normalization/ThirdNormalForm/NewTablesController.php +++ b/src/Controllers/Normalization/ThirdNormalForm/NewTablesController.php @@ -23,8 +23,8 @@ final class NewTablesController implements InvocableController public function __invoke(ServerRequest $request): Response { - $dependencies = json_decode($request->getParsedBodyParam('pd')); - $tables = json_decode($request->getParsedBodyParam('tables'), true); + $dependencies = json_decode($request->getParsedBodyParamAsString('pd')); + $tables = json_decode($request->getParsedBodyParamAsString('tables'), true); $newTables = $this->normalization->getHtmlForNewTables3NF($dependencies, $tables, Current::$database); $this->response->addJSON($newTables); diff --git a/src/Controllers/Operations/Database/CollationController.php b/src/Controllers/Operations/Database/CollationController.php index d5a8d56b70..30863224b7 100644 --- a/src/Controllers/Operations/Database/CollationController.php +++ b/src/Controllers/Operations/Database/CollationController.php @@ -38,8 +38,8 @@ final class CollationController implements InvocableController return $this->response->response(); } - $dbCollation = $request->getParsedBodyParam('db_collation') ?? ''; - if (empty($dbCollation)) { + $dbCollation = $request->getParsedBodyParamAsString('db_collation', ''); + if ($dbCollation === '') { $this->response->setRequestStatus(false); $this->response->addJSON('message', Message::error(__('No collation provided.'))); diff --git a/src/Controllers/Operations/DatabaseController.php b/src/Controllers/Operations/DatabaseController.php index a4a39e7569..c06a1cda45 100644 --- a/src/Controllers/Operations/DatabaseController.php +++ b/src/Controllers/Operations/DatabaseController.php @@ -222,7 +222,7 @@ final class DatabaseController implements InvocableController * (must be done before displaying the menu tabs) */ if ($request->hasBodyParam('comment')) { - $this->relation->setDbComment(Current::$database, $request->getParsedBodyParam('comment')); + $this->relation->setDbComment(Current::$database, $request->getParsedBodyParamAsString('comment')); } if (! $this->response->checkParameters(['db'])) { diff --git a/src/Controllers/Preferences/ExportController.php b/src/Controllers/Preferences/ExportController.php index 90315a64ed..815d6675ec 100644 --- a/src/Controllers/Preferences/ExportController.php +++ b/src/Controllers/Preferences/ExportController.php @@ -36,7 +36,6 @@ final class ExportController implements InvocableController public function __invoke(ServerRequest $request): Response { $GLOBALS['error'] ??= null; - $GLOBALS['tabHash'] ??= null; $GLOBALS['hash'] ??= null; $configFile = new ConfigFile($this->config->baseSettings); @@ -63,8 +62,7 @@ final class ExportController implements InvocableController if ($result === true) { // reload config $this->config->loadUserPreferences($this->themeManager); - $GLOBALS['tabHash'] = $request->getParsedBodyParam('tab_hash'); - $GLOBALS['hash'] = ltrim($GLOBALS['tabHash'], '#'); + $GLOBALS['hash'] = ltrim($request->getParsedBodyParamAsString('tab_hash'), '#'); $this->userPreferences->redirect('index.php?route=/preferences/export', null, $GLOBALS['hash']); return $this->response->response(); diff --git a/src/Controllers/Preferences/FeaturesController.php b/src/Controllers/Preferences/FeaturesController.php index 5ee56c7737..6dd4fce93b 100644 --- a/src/Controllers/Preferences/FeaturesController.php +++ b/src/Controllers/Preferences/FeaturesController.php @@ -36,7 +36,6 @@ final class FeaturesController implements InvocableController public function __invoke(ServerRequest $request): Response { $GLOBALS['error'] ??= null; - $GLOBALS['tabHash'] ??= null; $GLOBALS['hash'] ??= null; $configFile = new ConfigFile($this->config->baseSettings); @@ -63,8 +62,7 @@ final class FeaturesController implements InvocableController if ($result === true) { // reload config $this->config->loadUserPreferences($this->themeManager); - $GLOBALS['tabHash'] = $request->getParsedBodyParam('tab_hash'); - $GLOBALS['hash'] = ltrim($GLOBALS['tabHash'], '#'); + $GLOBALS['hash'] = ltrim($request->getParsedBodyParamAsString('tab_hash'), '#'); $this->userPreferences->redirect('index.php?route=/preferences/features', null, $GLOBALS['hash']); return $this->response->response(); diff --git a/src/Controllers/Preferences/ImportController.php b/src/Controllers/Preferences/ImportController.php index 50b93d4639..5132af8902 100644 --- a/src/Controllers/Preferences/ImportController.php +++ b/src/Controllers/Preferences/ImportController.php @@ -36,7 +36,6 @@ final class ImportController implements InvocableController public function __invoke(ServerRequest $request): Response { $GLOBALS['error'] ??= null; - $GLOBALS['tabHash'] ??= null; $GLOBALS['hash'] ??= null; $configFile = new ConfigFile($this->config->baseSettings); @@ -63,8 +62,7 @@ final class ImportController implements InvocableController if ($result === true) { // reload config $this->config->loadUserPreferences($this->themeManager); - $GLOBALS['tabHash'] = $request->getParsedBodyParam('tab_hash'); - $GLOBALS['hash'] = ltrim($GLOBALS['tabHash'], '#'); + $GLOBALS['hash'] = ltrim($request->getParsedBodyParamAsString('tab_hash'), '#'); $this->userPreferences->redirect('index.php?route=/preferences/import', null, $GLOBALS['hash']); return $this->response->response(); diff --git a/src/Controllers/Preferences/MainPanelController.php b/src/Controllers/Preferences/MainPanelController.php index 477ce56386..2ce91238a4 100644 --- a/src/Controllers/Preferences/MainPanelController.php +++ b/src/Controllers/Preferences/MainPanelController.php @@ -36,7 +36,6 @@ final class MainPanelController implements InvocableController public function __invoke(ServerRequest $request): Response { $GLOBALS['error'] ??= null; - $GLOBALS['tabHash'] ??= null; $GLOBALS['hash'] ??= null; $configFile = new ConfigFile($this->config->baseSettings); @@ -63,8 +62,7 @@ final class MainPanelController implements InvocableController if ($result === true) { // reload config $this->config->loadUserPreferences($this->themeManager); - $GLOBALS['tabHash'] = $request->getParsedBodyParam('tab_hash'); - $GLOBALS['hash'] = ltrim($GLOBALS['tabHash'], '#'); + $GLOBALS['hash'] = ltrim($request->getParsedBodyParamAsString('tab_hash'), '#'); $this->userPreferences->redirect('index.php?route=/preferences/main-panel', null, $GLOBALS['hash']); return $this->response->response(); diff --git a/src/Controllers/Preferences/ManageController.php b/src/Controllers/Preferences/ManageController.php index 529619460a..10a955ab38 100644 --- a/src/Controllers/Preferences/ManageController.php +++ b/src/Controllers/Preferences/ManageController.php @@ -126,14 +126,14 @@ final class ManageController implements InvocableController } } else { // read from POST value (json) - $json = $request->getParsedBodyParam('json'); + $json = $request->getParsedBodyParamAsString('json'); } // hide header message $_SESSION['userprefs_autoload'] = true; $configuration = json_decode($json, true); - $returnUrl = $request->getParsedBodyParam('return_url'); + $returnUrl = $request->getParsedBodyParamAsStringOrNull('return_url'); if (! is_array($configuration)) { if (! isset($GLOBALS['error'])) { $GLOBALS['error'] = __('Could not import configuration'); @@ -201,7 +201,7 @@ final class ManageController implements InvocableController // save settings $result = $this->userPreferences->save($configFile->getConfigArray()); if ($result === true) { - if ($returnUrl) { + if ($returnUrl !== null && $returnUrl !== '') { $GLOBALS['query'] = Util::splitURLQuery($returnUrl); $returnUrl = parse_url($returnUrl, PHP_URL_PATH); diff --git a/src/Controllers/Preferences/NavigationController.php b/src/Controllers/Preferences/NavigationController.php index 2d9c9c1826..1767feefae 100644 --- a/src/Controllers/Preferences/NavigationController.php +++ b/src/Controllers/Preferences/NavigationController.php @@ -36,7 +36,6 @@ final class NavigationController implements InvocableController public function __invoke(ServerRequest $request): Response { $GLOBALS['error'] ??= null; - $GLOBALS['tabHash'] ??= null; $GLOBALS['hash'] ??= null; $configFile = new ConfigFile($this->config->baseSettings); @@ -63,8 +62,7 @@ final class NavigationController implements InvocableController if ($result === true) { // reload config $this->config->loadUserPreferences($this->themeManager); - $GLOBALS['tabHash'] = $request->getParsedBodyParam('tab_hash'); - $GLOBALS['hash'] = ltrim($GLOBALS['tabHash'], '#'); + $GLOBALS['hash'] = ltrim($request->getParsedBodyParamAsString('tab_hash'), '#'); $this->userPreferences->redirect('index.php?route=/preferences/navigation', null, $GLOBALS['hash']); return $this->response->response(); diff --git a/src/Controllers/Preferences/SqlController.php b/src/Controllers/Preferences/SqlController.php index cfebf64524..4022386304 100644 --- a/src/Controllers/Preferences/SqlController.php +++ b/src/Controllers/Preferences/SqlController.php @@ -36,7 +36,6 @@ final class SqlController implements InvocableController public function __invoke(ServerRequest $request): Response { $GLOBALS['error'] ??= null; - $GLOBALS['tabHash'] ??= null; $GLOBALS['hash'] ??= null; $configFile = new ConfigFile($this->config->baseSettings); @@ -63,8 +62,7 @@ final class SqlController implements InvocableController if ($result === true) { // reload config $this->config->loadUserPreferences($this->themeManager); - $GLOBALS['tabHash'] = $request->getParsedBodyParam('tab_hash'); - $GLOBALS['hash'] = ltrim($GLOBALS['tabHash'], '#'); + $GLOBALS['hash'] = ltrim($request->getParsedBodyParamAsString('tab_hash'), '#'); $this->userPreferences->redirect('index.php?route=/preferences/sql', null, $GLOBALS['hash']); return $this->response->response(); diff --git a/src/Controllers/Preferences/TwoFactorController.php b/src/Controllers/Preferences/TwoFactorController.php index 6d9b085708..873a530d3a 100644 --- a/src/Controllers/Preferences/TwoFactorController.php +++ b/src/Controllers/Preferences/TwoFactorController.php @@ -47,7 +47,7 @@ final class TwoFactorController implements InvocableController Message::rawNotice(__('Two-factor authentication has been removed.'))->getDisplay(), ); } elseif ($request->hasBodyParam('2fa_configure')) { - if (! $twoFactor->configure($request, $request->getParsedBodyParam('2fa_configure'))) { + if (! $twoFactor->configure($request, $request->getParsedBodyParamAsString('2fa_configure'))) { $this->response->render('preferences/two_factor/configure', [ 'form' => $twoFactor->setup($request), 'configure' => $request->getParsedBodyParam('2fa_configure'), diff --git a/src/Controllers/SchemaExportController.php b/src/Controllers/SchemaExportController.php index a235855416..2249165ec7 100644 --- a/src/Controllers/SchemaExportController.php +++ b/src/Controllers/SchemaExportController.php @@ -16,7 +16,6 @@ use PhpMyAdmin\Message; use PhpMyAdmin\ResponseRenderer; use function __; -use function is_string; use function mb_strlen; /** @@ -34,9 +33,8 @@ final class SchemaExportController implements InvocableController public function __invoke(ServerRequest $request): Response { $db = DatabaseName::tryFrom($request->getParsedBodyParam('db')); - /** @var mixed $exportType */ - $exportType = $request->getParsedBodyParam('export_type'); - if ($db === null || ! is_string($exportType) || $exportType === '') { + $exportType = $request->getParsedBodyParamAsString('export_type'); + if ($db === null || $exportType === '') { $errorMessage = __('Missing parameter:') . ($db === null ? ' db' : ' export_type') . MySQLDocumentation::showDocumentation('faq', 'faqmissingparameters', true) . '[br]'; diff --git a/src/Controllers/Server/BinlogController.php b/src/Controllers/Server/BinlogController.php index 394c6bd959..e0fccd6d86 100644 --- a/src/Controllers/Server/BinlogController.php +++ b/src/Controllers/Server/BinlogController.php @@ -36,8 +36,8 @@ final class BinlogController implements InvocableController public function __invoke(ServerRequest $request): Response { - $log = $request->getParsedBodyParam('log'); - $position = (int) $request->getParsedBodyParam('pos', 0); + $log = $request->getParsedBodyParamAsString('log'); + $position = (int) $request->getParsedBodyParamAsString('pos', ''); $GLOBALS['errorUrl'] = Url::getFromRoute('/'); @@ -57,7 +57,7 @@ final class BinlogController implements InvocableController } $config = Config::getInstance(); - $sqlQuery = $this->getSqlQuery($log ?? '', $position, $config->settings['MaxRows']); + $sqlQuery = $this->getSqlQuery($log, $position, $config->settings['MaxRows']); $result = $this->dbi->query($sqlQuery); $numRows = $result->numRows(); diff --git a/src/Controllers/Server/Databases/CreateController.php b/src/Controllers/Server/Databases/CreateController.php index b1fd2dbf6e..7a13456f0c 100644 --- a/src/Controllers/Server/Databases/CreateController.php +++ b/src/Controllers/Server/Databases/CreateController.php @@ -33,10 +33,10 @@ final class CreateController implements InvocableController public function __invoke(ServerRequest $request): Response { - $newDb = $request->getParsedBodyParam('new_db'); - $dbCollation = $request->getParsedBodyParam('db_collation'); + $newDb = $request->getParsedBodyParamAsString('new_db'); + $dbCollation = $request->getParsedBodyParamAsStringOrNull('db_collation'); - if (! is_string($newDb) || $newDb === '' || ! $request->isAjax()) { + if ($newDb === '' || ! $request->isAjax()) { $this->response->addJSON(['message' => Message::error()]); return $this->response->response(); diff --git a/src/Controllers/Server/DatabasesController.php b/src/Controllers/Server/DatabasesController.php index a2e5591e1d..3156fc83ab 100644 --- a/src/Controllers/Server/DatabasesController.php +++ b/src/Controllers/Server/DatabasesController.php @@ -90,7 +90,7 @@ final class DatabasesController implements InvocableController } $replicationInfo = new ReplicationInfo($this->dbi); - $replicationInfo->load($request->getParsedBodyParam('primary_connection')); + $replicationInfo->load($request->getParsedBodyParamAsStringOrNull('primary_connection')); $primaryInfo = $replicationInfo->getPrimaryInfo(); $replicaInfo = $replicationInfo->getReplicaInfo(); diff --git a/src/Controllers/Server/Privileges/AccountLockController.php b/src/Controllers/Server/Privileges/AccountLockController.php index ed0310cfff..c7a1bbbddc 100644 --- a/src/Controllers/Server/Privileges/AccountLockController.php +++ b/src/Controllers/Server/Privileges/AccountLockController.php @@ -29,10 +29,8 @@ final class AccountLockController implements InvocableController return $this->response->response(); } - /** @var string $userName */ - $userName = $request->getParsedBodyParam('username'); - /** @var string $hostName */ - $hostName = $request->getParsedBodyParam('hostname'); + $userName = $request->getParsedBodyParamAsString('username'); + $hostName = $request->getParsedBodyParamAsString('hostname'); try { $this->accountLocking->lock($userName, $hostName); diff --git a/src/Controllers/Server/Privileges/AccountUnlockController.php b/src/Controllers/Server/Privileges/AccountUnlockController.php index d237343ed8..998d9bfb6b 100644 --- a/src/Controllers/Server/Privileges/AccountUnlockController.php +++ b/src/Controllers/Server/Privileges/AccountUnlockController.php @@ -29,10 +29,8 @@ final class AccountUnlockController implements InvocableController return $this->response->response(); } - /** @var string $userName */ - $userName = $request->getParsedBodyParam('username'); - /** @var string $hostName */ - $hostName = $request->getParsedBodyParam('hostname'); + $userName = $request->getParsedBodyParamAsString('username'); + $hostName = $request->getParsedBodyParamAsString('hostname'); try { $this->accountLocking->unlock($userName, $hostName); diff --git a/src/Controllers/Server/PrivilegesController.php b/src/Controllers/Server/PrivilegesController.php index 9ddfcb3d22..677f615596 100644 --- a/src/Controllers/Server/PrivilegesController.php +++ b/src/Controllers/Server/PrivilegesController.php @@ -144,8 +144,8 @@ final class PrivilegesController implements InvocableController * Changes / copies a user, part I */ $password = $serverPrivileges->getDataForChangeOrCopyUser( - $request->getParsedBodyParam('old_username', ''), - $request->getParsedBodyParam('old_hostname', ''), + $request->getParsedBodyParamAsString('old_username', ''), + $request->getParsedBodyParamAsString('old_hostname', ''), ); /** @@ -173,8 +173,8 @@ final class PrivilegesController implements InvocableController $queries, $GLOBALS['username'], $GLOBALS['hostname'], - $request->getParsedBodyParam('old_username'), - $request->getParsedBodyParam('old_hostname'), + $request->getParsedBodyParamAsString('old_username'), + $request->getParsedBodyParamAsString('old_hostname'), ); } @@ -217,7 +217,10 @@ final class PrivilegesController implements InvocableController $request->hasBodyParam('changeUserGroup') && $relationParameters->configurableMenusFeature !== null && $this->dbi->isSuperUser() && $this->dbi->isCreateUser() ) { - $serverPrivileges->setUserGroup($GLOBALS['username'] ?? '', $request->getParsedBodyParam('userGroup', '')); + $serverPrivileges->setUserGroup( + $GLOBALS['username'] ?? '', + $request->getParsedBodyParamAsString('userGroup', ''), + ); $GLOBALS['message'] = Message::success(); } diff --git a/src/Controllers/Server/ReplicationController.php b/src/Controllers/Server/ReplicationController.php index 90ea9a6a9c..779cd8782d 100644 --- a/src/Controllers/Server/ReplicationController.php +++ b/src/Controllers/Server/ReplicationController.php @@ -35,7 +35,7 @@ final class ReplicationController implements InvocableController $GLOBALS['urlParams'] ??= null; $GLOBALS['errorUrl'] ??= null; - $hasReplicaClearScreen = (bool) $request->getParsedBodyParam('replica_clear_screen'); + $hasReplicaClearScreen = (bool) $request->getParsedBodyParamAsStringOrNull('replica_clear_screen'); $replicaConfigure = $request->getParsedBodyParam('replica_configure'); $primaryConfigure = $request->getParsedBodyParam('primary_configure'); @@ -46,8 +46,7 @@ final class ReplicationController implements InvocableController } $replicationInfo = new ReplicationInfo($this->dbi); - /** @var string|null $primaryConnection */ - $primaryConnection = $request->getParsedBodyParam('primary_connection'); + $primaryConnection = $request->getParsedBodyParamAsStringOrNull('primary_connection'); $replicationInfo->load($primaryConnection); $primaryInfo = $replicationInfo->getPrimaryInfo(); @@ -61,12 +60,9 @@ final class ReplicationController implements InvocableController } if ($this->dbi->isSuperUser()) { - /** @var string|null $srReplicaAction */ - $srReplicaAction = $request->getParsedBodyParam('sr_replica_action'); - /** @var string|int $srSkipErrorsCount */ - $srSkipErrorsCount = $request->getParsedBodyParam('sr_skip_errors_count', 1); - /** @var string|null $srReplicaControlParam */ - $srReplicaControlParam = $request->getParsedBodyParam('sr_replica_control_param'); + $srReplicaAction = $request->getParsedBodyParamAsStringOrNull('sr_replica_action'); + $srSkipErrorsCount = $request->getParsedBodyParamAsStringOrNull('sr_skip_errors_count', '1'); + $srReplicaControlParam = $request->getParsedBodyParamAsStringOrNull('sr_replica_control_param'); $this->replicationGui->handleControlRequest( $request->getParsedBodyParam('sr_take_action') !== null, @@ -76,22 +72,19 @@ final class ReplicationController implements InvocableController $request->getParsedBodyParam('sr_replica_skip_error') !== null, (int) $srSkipErrorsCount, $srReplicaControlParam, - $request->getParsedBodyParam('username', ''), - $request->getParsedBodyParam('pma_pw', ''), - $request->getParsedBodyParam('hostname', ''), - (int) $request->getParsedBodyParam('text_port'), + $request->getParsedBodyParamAsString('username', ''), + $request->getParsedBodyParamAsString('pma_pw', ''), + $request->getParsedBodyParamAsString('hostname', ''), + (int) $request->getParsedBodyParamAsString('text_port'), ); } $errorMessages = $this->replicationGui->getHtmlForErrorMessage(); if ($primaryInfo['status']) { - /** @var string|null $primaryAddUser */ - $primaryAddUser = $request->getParsedBodyParam('primary_add_user'); - /** @var string $username */ - $username = $request->getParsedBodyParam('username'); - /** @var string $hostname */ - $hostname = $request->getParsedBodyParam('hostname'); + $primaryAddUser = $request->getParsedBodyParamAsStringOrNull('primary_add_user'); + $username = $request->getParsedBodyParamAsString('username'); + $hostname = $request->getParsedBodyParamAsString('hostname'); $primaryReplicationHtml = $this->replicationGui->getHtmlForPrimaryReplication( $primaryConnection, diff --git a/src/Controllers/Server/Status/Monitor/ChartingDataController.php b/src/Controllers/Server/Status/Monitor/ChartingDataController.php index ae83342f7a..9349a09e31 100644 --- a/src/Controllers/Server/Status/Monitor/ChartingDataController.php +++ b/src/Controllers/Server/Status/Monitor/ChartingDataController.php @@ -31,7 +31,7 @@ final class ChartingDataController extends AbstractController implements Invocab { $GLOBALS['errorUrl'] ??= null; - $requiredData = $request->getParsedBodyParam('requiredData', ''); + $requiredData = $request->getParsedBodyParamAsString('requiredData', ''); $GLOBALS['errorUrl'] = Url::getFromRoute('/'); if ($this->dbi->isSuperUser()) { diff --git a/src/Controllers/Server/Status/Monitor/GeneralLogController.php b/src/Controllers/Server/Status/Monitor/GeneralLogController.php index aeb0d3ecfc..9636d57385 100644 --- a/src/Controllers/Server/Status/Monitor/GeneralLogController.php +++ b/src/Controllers/Server/Status/Monitor/GeneralLogController.php @@ -42,10 +42,10 @@ final class GeneralLogController extends AbstractController implements Invocable } $data = $this->monitor->getJsonForLogDataTypeGeneral( - (int) $request->getParsedBodyParam('time_start'), - (int) $request->getParsedBodyParam('time_end'), - (bool) $request->getParsedBodyParam('limitTypes'), - (bool) $request->getParsedBodyParam('removeVariables'), + (int) $request->getParsedBodyParamAsStringOrNull('time_start'), + (int) $request->getParsedBodyParamAsStringOrNull('time_end'), + (bool) $request->getParsedBodyParamAsStringOrNull('limitTypes'), + (bool) $request->getParsedBodyParamAsStringOrNull('removeVariables'), ); if ($data === null) { $this->response->setRequestStatus(false); diff --git a/src/Controllers/Server/Status/Monitor/LogVarsController.php b/src/Controllers/Server/Status/Monitor/LogVarsController.php index 797888b621..cb614691cc 100644 --- a/src/Controllers/Server/Status/Monitor/LogVarsController.php +++ b/src/Controllers/Server/Status/Monitor/LogVarsController.php @@ -43,8 +43,8 @@ final class LogVarsController extends AbstractController implements InvocableCon $this->response->addJSON([ 'message' => $this->monitor->getJsonForLoggingVars( - $request->getParsedBodyParam('varName'), - $request->getParsedBodyParam('varValue'), + $request->getParsedBodyParamAsStringOrNull('varName'), + $request->getParsedBodyParamAsStringOrNull('varValue'), ), ]); diff --git a/src/Controllers/Server/Status/Monitor/QueryAnalyzerController.php b/src/Controllers/Server/Status/Monitor/QueryAnalyzerController.php index 343c95827d..04ea58e1de 100644 --- a/src/Controllers/Server/Status/Monitor/QueryAnalyzerController.php +++ b/src/Controllers/Server/Status/Monitor/QueryAnalyzerController.php @@ -43,8 +43,8 @@ final class QueryAnalyzerController extends AbstractController implements Invoca $this->response->addJSON([ 'message' => $this->monitor->getJsonForQueryAnalyzer( - $request->getParsedBodyParam('database', ''), - $request->getParsedBodyParam('query', ''), + $request->getParsedBodyParamAsString('database', ''), + $request->getParsedBodyParamAsString('query', ''), ), ]); diff --git a/src/Controllers/Server/Status/Monitor/SlowLogController.php b/src/Controllers/Server/Status/Monitor/SlowLogController.php index f9b250894e..658efb1fd6 100644 --- a/src/Controllers/Server/Status/Monitor/SlowLogController.php +++ b/src/Controllers/Server/Status/Monitor/SlowLogController.php @@ -42,8 +42,8 @@ final class SlowLogController extends AbstractController implements InvocableCon } $data = $this->monitor->getJsonForLogDataTypeSlow( - (int) $request->getParsedBodyParam('time_start'), - (int) $request->getParsedBodyParam('time_end'), + (int) $request->getParsedBodyParamAsStringOrNull('time_start'), + (int) $request->getParsedBodyParamAsStringOrNull('time_end'), ); if ($data === null) { $this->response->setRequestStatus(false); diff --git a/src/Controllers/Server/Status/Processes/RefreshController.php b/src/Controllers/Server/Status/Processes/RefreshController.php index 57b8506911..582a274a09 100644 --- a/src/Controllers/Server/Status/Processes/RefreshController.php +++ b/src/Controllers/Server/Status/Processes/RefreshController.php @@ -33,8 +33,8 @@ final class RefreshController extends AbstractController implements InvocableCon $this->response->render('server/status/processes/list', $this->processes->getList( $request->hasBodyParam('showExecuting'), $request->hasBodyParam('full'), - (string) $request->getParsedBodyParam('order_by_field', ''), - (string) $request->getParsedBodyParam('sort_order', ''), + $request->getParsedBodyParamAsString('order_by_field', ''), + $request->getParsedBodyParamAsString('sort_order', ''), )); return $this->response->response(); diff --git a/src/Controllers/Server/Status/ProcessesController.php b/src/Controllers/Server/Status/ProcessesController.php index dbb653517c..a15fc7f713 100644 --- a/src/Controllers/Server/Status/ProcessesController.php +++ b/src/Controllers/Server/Status/ProcessesController.php @@ -32,8 +32,8 @@ final class ProcessesController extends AbstractController implements InvocableC $showExecuting = $request->hasBodyParam('showExecuting'); $full = $request->getParsedBodyParam('full') === '1'; - $orderByField = (string) $request->getParsedBodyParam('order_by_field', ''); - $sortOrder = (string) $request->getParsedBodyParam('sort_order', ''); + $orderByField = $request->getParsedBodyParamAsString('order_by_field', ''); + $sortOrder = $request->getParsedBodyParamAsString('sort_order', ''); if ($this->dbi->isSuperUser()) { $this->dbi->selectDb('mysql'); diff --git a/src/Controllers/Server/Status/StatusController.php b/src/Controllers/Server/Status/StatusController.php index 8d5e76561a..57a9c21758 100644 --- a/src/Controllers/Server/Status/StatusController.php +++ b/src/Controllers/Server/Status/StatusController.php @@ -70,7 +70,7 @@ final class StatusController extends AbstractController implements InvocableCont $traffic = $this->getTrafficInfo(); $connections = $this->getConnectionsInfo(); - $primaryConnection = $request->getParsedBodyParam('primary_connection'); + $primaryConnection = $request->getParsedBodyParamAsStringOrNull('primary_connection'); if ($primaryInfo['status']) { $replication .= $this->replicationGui->getHtmlForReplicationStatusTable($primaryConnection, 'primary'); diff --git a/src/Controllers/Server/UserGroupsController.php b/src/Controllers/Server/UserGroupsController.php index 8f34a3d5cd..2a06cd8938 100644 --- a/src/Controllers/Server/UserGroupsController.php +++ b/src/Controllers/Server/UserGroupsController.php @@ -64,21 +64,21 @@ final class UserGroupsController implements InvocableController * Add a new user group */ if ($request->hasBodyParam('addUserGroupSubmit')) { - UserGroups::edit($configurableMenusFeature, $request->getParsedBodyParam('userGroup'), true); + UserGroups::edit($configurableMenusFeature, $request->getParsedBodyParamAsString('userGroup'), true); } /** * Update a user group */ if ($request->hasBodyParam('editUserGroupSubmit')) { - UserGroups::edit($configurableMenusFeature, $request->getParsedBodyParam('userGroup')); + UserGroups::edit($configurableMenusFeature, $request->getParsedBodyParamAsString('userGroup')); } if ($request->hasBodyParam('viewUsers')) { // Display users belonging to a user group $this->response->addHTML(UserGroups::getHtmlForListingUsersofAGroup( $configurableMenusFeature, - $request->getParsedBodyParam('userGroup'), + $request->getParsedBodyParamAsString('userGroup'), )); } @@ -89,7 +89,7 @@ final class UserGroupsController implements InvocableController // Display edit user group dialog $this->response->addHTML(UserGroups::getHtmlToEditUserGroup( $configurableMenusFeature, - $request->getParsedBodyParam('userGroup'), + $request->getParsedBodyParamAsStringOrNull('userGroup'), )); } else { // Display user groups table diff --git a/src/Controllers/Server/Variables/SetVariableController.php b/src/Controllers/Server/Variables/SetVariableController.php index 88c6ee44d9..6407108263 100644 --- a/src/Controllers/Server/Variables/SetVariableController.php +++ b/src/Controllers/Server/Variables/SetVariableController.php @@ -41,7 +41,7 @@ final class SetVariableController implements InvocableController return $this->response->response(); } - $value = (string) $request->getParsedBodyParam('varValue'); + $value = $request->getParsedBodyParamAsString('varValue', ''); $variableName = $this->getName($request->getAttribute('routeVars')); $matches = []; $variableType = ServerVariablesProvider::getImplementation()->getVariableType($variableName); diff --git a/src/Controllers/Setup/ValidateController.php b/src/Controllers/Setup/ValidateController.php index ee2bab96f1..ee25efbf0d 100644 --- a/src/Controllers/Setup/ValidateController.php +++ b/src/Controllers/Setup/ValidateController.php @@ -20,7 +20,6 @@ use function __; use function explode; use function file_exists; use function implode; -use function is_string; use function json_decode; use function json_encode; use function sprintf; @@ -52,13 +51,11 @@ final class ValidateController implements InvocableController $response = $response->withHeader($name, $value); } - /** @var mixed $id */ - $id = $request->getParsedBodyParam('id'); - $vids = explode(',', is_string($id) ? $id : ''); + $id = $request->getParsedBodyParamAsString('id', ''); + $vids = explode(',', $id); - /** @var mixed $valuesParam */ - $valuesParam = $request->getParsedBodyParam('values'); - $values = json_decode(is_string($valuesParam) ? $valuesParam : ''); + $valuesParam = $request->getParsedBodyParamAsString('values', ''); + $values = json_decode($valuesParam); if (! $values instanceof stdClass) { return $response->write((string) json_encode(['success' => false, 'message' => __('Wrong data')])); } diff --git a/src/Controllers/Sql/ColumnPreferencesController.php b/src/Controllers/Sql/ColumnPreferencesController.php index 9bacc0733e..0dcbca9da0 100644 --- a/src/Controllers/Sql/ColumnPreferencesController.php +++ b/src/Controllers/Sql/ColumnPreferencesController.php @@ -29,8 +29,7 @@ final class ColumnPreferencesController implements InvocableController $tableObject = $this->dbi->getTable(Current::$database, Current::$table); $status = false; - /** @var string|null $tableCreateTime */ - $tableCreateTime = $request->getParsedBodyParam('table_create_time'); + $tableCreateTime = $request->getParsedBodyParamAsStringOrNull('table_create_time'); // set column order $colorder = $request->getParsedBodyParam('col_order'); diff --git a/src/Controllers/Sql/EnumValuesController.php b/src/Controllers/Sql/EnumValuesController.php index 0a1678d15d..504cdf29bc 100644 --- a/src/Controllers/Sql/EnumValuesController.php +++ b/src/Controllers/Sql/EnumValuesController.php @@ -28,9 +28,9 @@ final class EnumValuesController implements InvocableController */ public function __invoke(ServerRequest $request): Response { - $column = $request->getParsedBodyParam('column'); - $currValue = $request->getParsedBodyParam('curr_value'); - $values = $this->sql->getValuesForColumn(Current::$database, Current::$table, (string) $column); + $column = $request->getParsedBodyParamAsString('column', ''); + $currValue = $request->getParsedBodyParamAsString('curr_value', ''); + $values = $this->sql->getValuesForColumn(Current::$database, Current::$table, $column); if ($values === null) { $this->response->addJSON('message', __('Error in processing request')); @@ -41,7 +41,7 @@ final class EnumValuesController implements InvocableController $dropdown = $this->template->render('sql/enum_column_dropdown', [ 'values' => $values, - 'selected_values' => [(string) $currValue], + 'selected_values' => [$currValue], ]); $this->response->addJSON('dropdown', $dropdown); diff --git a/src/Controllers/Sql/RelationalValuesController.php b/src/Controllers/Sql/RelationalValuesController.php index 61408a7753..f6d01404b1 100644 --- a/src/Controllers/Sql/RelationalValuesController.php +++ b/src/Controllers/Sql/RelationalValuesController.php @@ -24,20 +24,20 @@ final class RelationalValuesController implements InvocableController */ public function __invoke(ServerRequest $request): Response { - $column = $request->getParsedBodyParam('column'); - $relationKeyOrDisplayColumn = $request->getParsedBodyParam('relation_key_or_display_column'); + $column = $request->getParsedBodyParamAsString('column', ''); + $relationKeyOrDisplayColumn = $request->getParsedBodyParamAsStringOrNull('relation_key_or_display_column'); if ($_SESSION['tmpval']['relational_display'] === 'D' && $relationKeyOrDisplayColumn !== null) { $currValue = $relationKeyOrDisplayColumn; } else { - $currValue = $request->getParsedBodyParam('curr_value'); + $currValue = $request->getParsedBodyParamAsString('curr_value', ''); } $dropdown = $this->sql->getHtmlForRelationalColumnDropdown( Current::$database, Current::$table, - (string) $column, - (string) $currValue, + $column, + $currValue, ); $this->response->addJSON('dropdown', $dropdown); diff --git a/src/Controllers/Sql/SetValuesController.php b/src/Controllers/Sql/SetValuesController.php index ac1b01f557..91a9463289 100644 --- a/src/Controllers/Sql/SetValuesController.php +++ b/src/Controllers/Sql/SetValuesController.php @@ -29,9 +29,9 @@ final class SetValuesController implements InvocableController */ public function __invoke(ServerRequest $request): Response { - $column = $request->getParsedBodyParam('column'); - $currentValue = $request->getParsedBodyParam('curr_value'); - $whereClause = $request->getParsedBodyParam('where_clause'); + $column = $request->getParsedBodyParamAsString('column'); + $currentValue = $request->getParsedBodyParamAsString('curr_value'); + $whereClause = $request->getParsedBodyParamAsStringOrNull('where_clause'); $values = $this->sql->getValuesForColumn(Current::$database, Current::$table, $column); @@ -43,7 +43,7 @@ final class SetValuesController implements InvocableController } // If the $currentValue was truncated, we should fetch the correct full values from the table. - if ($request->hasBodyParam('get_full_values') && ! empty($whereClause)) { + if ($request->hasBodyParam('get_full_values') && $whereClause !== null && $whereClause !== '') { $currentValue = $this->sql->getFullValuesForSetColumn( Current::$database, Current::$table, diff --git a/src/Controllers/Table/AddFieldController.php b/src/Controllers/Table/AddFieldController.php index a4c36d3edb..7984eac4b8 100644 --- a/src/Controllers/Table/AddFieldController.php +++ b/src/Controllers/Table/AddFieldController.php @@ -52,8 +52,7 @@ final class AddFieldController implements InvocableController $GLOBALS['errorUrl'] ??= null; $GLOBALS['message'] ??= null; - /** @var string|null $numberOfFields */ - $numberOfFields = $request->getParsedBodyParam('num_fields'); + $numberOfFields = $request->getParsedBodyParamAsStringOrNull('num_fields'); $this->response->addScriptFiles(['table/structure.js']); diff --git a/src/Controllers/Table/CreateController.php b/src/Controllers/Table/CreateController.php index 9d1e534d57..3e73d0eff7 100644 --- a/src/Controllers/Table/CreateController.php +++ b/src/Controllers/Table/CreateController.php @@ -161,11 +161,11 @@ final class CreateController implements InvocableController */ private function getNumberOfFieldsFromRequest(ServerRequest $request): int { - $origNumFields = $request->getParsedBodyParam('orig_num_fields'); - $numFields = $request->getParsedBodyParam('num_fields'); + $origNumFields = $request->getParsedBodyParamAsStringOrNull('orig_num_fields'); + $numFields = $request->getParsedBodyParamAsStringOrNull('num_fields'); if ($request->hasBodyParam('submit_num_fields')) { // adding new fields - $numberOfFields = (int) $origNumFields + (int) $request->getParsedBodyParam('added_fields'); + $numberOfFields = (int) $origNumFields + (int) $request->getParsedBodyParamAsStringOrNull('added_fields'); } elseif ($origNumFields !== null) { // retaining existing fields $numberOfFields = (int) $origNumFields; } elseif ($numFields !== null && (int) $numFields > 0) { // new table with specified number of fields diff --git a/src/Controllers/Table/DeleteRowsController.php b/src/Controllers/Table/DeleteRowsController.php index ac9d75c0f1..5826cc533d 100644 --- a/src/Controllers/Table/DeleteRowsController.php +++ b/src/Controllers/Table/DeleteRowsController.php @@ -79,7 +79,7 @@ final class DeleteRowsController implements InvocableController } if ($request->hasBodyParam('original_sql_query')) { - $GLOBALS['sql_query'] = $request->getParsedBodyParam('original_sql_query', ''); + $GLOBALS['sql_query'] = $request->getParsedBodyParamAsString('original_sql_query', ''); } $this->response->addHTML($sql->executeQueryAndSendQueryResponse( diff --git a/src/Controllers/Table/FindReplaceController.php b/src/Controllers/Table/FindReplaceController.php index 211247c06a..3e7dc8db2e 100644 --- a/src/Controllers/Table/FindReplaceController.php +++ b/src/Controllers/Table/FindReplaceController.php @@ -98,12 +98,12 @@ final class FindReplaceController implements InvocableController $this->loadTableInfo(); $connectionCharSet = (string) $this->dbi->fetchValue('SELECT @@character_set_connection'); - $useRegex = (bool) $request->getParsedBodyParam('useRegex'); - $replaceWith = (string) $request->getParsedBodyParam('replaceWith'); - $columnIndex = (int) $request->getParsedBodyParam('columnIndex'); + $useRegex = (bool) $request->getParsedBodyParamAsStringOrNull('useRegex'); + $replaceWith = $request->getParsedBodyParamAsString('replaceWith', ''); + $columnIndex = (int) $request->getParsedBodyParamAsStringOrNull('columnIndex'); if ($request->hasBodyParam('find')) { - $find = (string) $request->getParsedBodyParam('find'); + $find = $request->getParsedBodyParamAsString('find', ''); $preview = $this->getReplacePreview($columnIndex, $find, $replaceWith, $useRegex, $connectionCharSet); $this->response->addJSON('preview', $preview); @@ -113,7 +113,7 @@ final class FindReplaceController implements InvocableController $this->response->addScriptFiles(['table/find_replace.js']); if ($request->hasBodyParam('replace')) { - $findString = (string) $request->getParsedBodyParam('findString'); + $findString = $request->getParsedBodyParamAsString('findString', ''); $this->replace($columnIndex, $findString, $replaceWith, $useRegex, $connectionCharSet); $this->response->addHTML( Generator::getMessage( diff --git a/src/Controllers/Table/IndexRenameController.php b/src/Controllers/Table/IndexRenameController.php index b515b6034c..ba9d4a22f4 100644 --- a/src/Controllers/Table/IndexRenameController.php +++ b/src/Controllers/Table/IndexRenameController.php @@ -80,8 +80,8 @@ final class IndexRenameController implements InvocableController return $this->response->response(); } - $oldIndexName = $request->getParsedBodyParam('old_index'); - $indexName = $request->getParsedBodyParam('index'); + $oldIndexName = $request->getParsedBodyParamAsStringOrNull('old_index'); + $indexName = $request->getParsedBodyParamAsString('index'); if ($oldIndexName === null) { $index = $this->dbi->getTable($databaseName->getName(), $tableName->getName())->getIndex($indexName); diff --git a/src/Controllers/Table/ReplaceController.php b/src/Controllers/Table/ReplaceController.php index 58abb6da22..59cbfc9e32 100644 --- a/src/Controllers/Table/ReplaceController.php +++ b/src/Controllers/Table/ReplaceController.php @@ -72,7 +72,7 @@ final class ReplaceController implements InvocableController $this->response->addScriptFiles(['makegrid.js', 'sql.js', 'gis_data_editor.js']); - $afterInsert = $request->getParsedBodyParam('after_insert'); + $afterInsert = $request->getParsedBodyParamAsStringOrNull('after_insert'); if (in_array($afterInsert, ['new_insert', 'same_insert', 'edit_next'], true)) { $GLOBALS['urlParams']['after_insert'] = $afterInsert; $whereClause = $request->getParsedBodyParam('where_clause'); @@ -379,7 +379,7 @@ final class ReplaceController implements InvocableController /** @param string[][] $mimeMap */ private function doTransformations(array $mimeMap, ServerRequest $request): void { - $relFieldsList = $request->getParsedBodyParam('rel_fields_list', ''); + $relFieldsList = $request->getParsedBodyParamAsString('rel_fields_list', ''); if ($relFieldsList !== '') { $foreigners = $this->relation->getForeigners(Current::$database, Current::$table); @@ -410,7 +410,7 @@ final class ReplaceController implements InvocableController if ($request->getParsedBodyParam('do_transformations') == true) { $editedValues = []; - parse_str($request->getParsedBodyParam('transform_fields_list'), $editedValues); + parse_str($request->getParsedBodyParamAsString('transform_fields_list'), $editedValues); if (! isset($extraData)) { $extraData = []; @@ -448,8 +448,8 @@ final class ReplaceController implements InvocableController /**Get the total row count of the table*/ $tableObj = new Table( - $request->getParsedBodyParam('table'), - $request->getParsedBodyParam('db'), + $request->getParsedBodyParamAsString('table'), + $request->getParsedBodyParamAsString('db'), $this->dbi, ); $extraData['row_count'] = $tableObj->countRecords(); diff --git a/src/Controllers/Table/SqlController.php b/src/Controllers/Table/SqlController.php index 688b553a07..06aaefa08a 100644 --- a/src/Controllers/Table/SqlController.php +++ b/src/Controllers/Table/SqlController.php @@ -92,7 +92,7 @@ class SqlController implements InvocableController */ $GLOBALS['goto'] = Url::getFromRoute('/table/sql'); $GLOBALS['back'] = Url::getFromRoute('/table/sql'); - $delimiter = $request->getParsedBodyParam('delimiter', ';'); + $delimiter = $request->getParsedBodyParamAsString('delimiter', ';'); $this->response->addHTML($this->sqlQueryForm->getHtml( Current::$database, diff --git a/src/Controllers/Table/Structure/AddKeyController.php b/src/Controllers/Table/Structure/AddKeyController.php index a022b19d34..02fdab7f09 100644 --- a/src/Controllers/Table/Structure/AddKeyController.php +++ b/src/Controllers/Table/Structure/AddKeyController.php @@ -17,7 +17,7 @@ final class AddKeyController extends AbstractIndexController implements Invocabl { $GLOBALS['reload'] = true; - $keyType = $this->getKeyType($request->getParsedBodyParam('key_type')); + $keyType = $this->getKeyType($request->getParsedBodyParamAsStringOrNull('key_type')); if ($keyType === '') { $this->response->setRequestStatus(false); $this->response->addJSON('message', __('Invalid request parameter.')); @@ -29,7 +29,7 @@ final class AddKeyController extends AbstractIndexController implements Invocabl } /** @psalm-return 'FULLTEXT'|'INDEX'|'PRIMARY'|'SPATIAL'|'UNIQUE'|'' */ - private function getKeyType(mixed $keyType): string + private function getKeyType(string|null $keyType): string { return in_array($keyType, ['FULLTEXT', 'INDEX', 'PRIMARY', 'SPATIAL', 'UNIQUE'], true) ? $keyType : ''; } diff --git a/src/Controllers/Table/Structure/CentralColumnsAddController.php b/src/Controllers/Table/Structure/CentralColumnsAddController.php index 369edb1f7f..ef05c0c40e 100644 --- a/src/Controllers/Table/Structure/CentralColumnsAddController.php +++ b/src/Controllers/Table/Structure/CentralColumnsAddController.php @@ -45,7 +45,7 @@ final class CentralColumnsAddController implements InvocableController DatabaseName::from($request->getParsedBodyParam('db')), $selected, false, - $request->getParsedBodyParam('table'), + $request->getParsedBodyParamAsString('table'), ); if ($centralColsError instanceof Message) { diff --git a/src/Controllers/Table/Structure/PrimaryController.php b/src/Controllers/Table/Structure/PrimaryController.php index c74f1ad7d8..e9fcaf6df6 100644 --- a/src/Controllers/Table/Structure/PrimaryController.php +++ b/src/Controllers/Table/Structure/PrimaryController.php @@ -52,8 +52,7 @@ final class PrimaryController implements InvocableController $this->dbi->selectDb(Current::$database); $hasPrimary = $this->hasPrimaryKey(); - /** @var string|null $deletionConfirmed */ - $deletionConfirmed = $request->getParsedBodyParam('mult_btn'); + $deletionConfirmed = $request->getParsedBodyParamAsStringOrNull('mult_btn'); if ($hasPrimary && $deletionConfirmed === null) { if (! $this->response->checkParameters(['db', 'table'])) { diff --git a/src/Controllers/Table/TrackingController.php b/src/Controllers/Table/TrackingController.php index 761153eff5..e8a822cf30 100644 --- a/src/Controllers/Table/TrackingController.php +++ b/src/Controllers/Table/TrackingController.php @@ -101,12 +101,10 @@ final class TrackingController implements InvocableController $GLOBALS['urlParams']['goto'] = Url::getFromRoute('/table/tracking'); $GLOBALS['urlParams']['back'] = Url::getFromRoute('/table/tracking'); - /** @var string $versionParam */ - $versionParam = $request->getParsedBodyParam('version'); - /** @var string $tableParam */ - $tableParam = $request->getParsedBodyParam('table'); + $versionParam = $request->getParsedBodyParamAsString('version', ''); + $tableParam = $request->getParsedBodyParamAsString('table', ''); - $logType = LogType::tryFrom((string) $request->getParsedBodyParam('log_type')) ?? LogType::SchemaAndData; + $logType = LogType::tryFrom($request->getParsedBodyParamAsString('log_type', '')) ?? LogType::SchemaAndData; $message = ''; $sqlDump = ''; @@ -127,8 +125,7 @@ final class TrackingController implements InvocableController ); $dateTo = $this->validateDateTimeParam($request->getParsedBodyParam('date_to', $trackedData->dateTo)); - /** @var string $users */ - $users = $request->getParsedBodyParam('users', '*'); + $users = $request->getParsedBodyParamAsString('users', '*'); $filterUsers = array_map(trim(...), explode(',', $users)); @@ -162,7 +159,7 @@ final class TrackingController implements InvocableController $versionParam, $trackedData->ddlog, TrackedDataType::DDL, - (int) $request->getParsedBodyParam('delete_ddlog'), + (int) $request->getParsedBodyParamAsStringOrNull('delete_ddlog'), ); // After deletion reload data from the database $trackedData = $this->tracking->getTrackedData(Current::$database, Current::$table, $versionParam); @@ -173,7 +170,7 @@ final class TrackingController implements InvocableController $versionParam, $trackedData->dmlog, TrackedDataType::DML, - (int) $request->getParsedBodyParam('delete_dmlog'), + (int) $request->getParsedBodyParamAsStringOrNull('delete_dmlog'), ); // After deletion reload data from the database $trackedData = $this->tracking->getTrackedData(Current::$database, Current::$table, $versionParam); @@ -237,8 +234,7 @@ final class TrackingController implements InvocableController } if ($request->hasBodyParam('snapshot')) { - /** @var string $db */ - $db = $request->getParsedBodyParam('db'); + $db = $request->getParsedBodyParamAsString('db'); $schemaSnapshot = $this->tracking->getHtmlForSchemaSnapshot( $db, $tableParam, diff --git a/src/Controllers/TableController.php b/src/Controllers/TableController.php index 47c63f5e8b..0bb49f30af 100644 --- a/src/Controllers/TableController.php +++ b/src/Controllers/TableController.php @@ -25,7 +25,7 @@ final class TableController implements InvocableController return $this->response->response(); } - $this->response->addJSON(['tables' => $this->dbi->getTables($request->getParsedBodyParam('db'))]); + $this->response->addJSON(['tables' => $this->dbi->getTables($request->getParsedBodyParamAsString('db'))]); return $this->response->response(); } diff --git a/src/Controllers/ThemeSetController.php b/src/Controllers/ThemeSetController.php index 72cfc8b886..40c9542255 100644 --- a/src/Controllers/ThemeSetController.php +++ b/src/Controllers/ThemeSetController.php @@ -12,8 +12,6 @@ use PhpMyAdmin\Theme\ThemeManager; use PhpMyAdmin\Url; use PhpMyAdmin\UserPreferences; -use function is_string; - final class ThemeSetController implements InvocableController { public function __construct( @@ -25,8 +23,8 @@ final class ThemeSetController implements InvocableController public function __invoke(ServerRequest $request): Response { - $theme = $request->getParsedBodyParam('set_theme'); - if (! Config::getInstance()->settings['ThemeManager'] || ! is_string($theme) || $theme === '') { + $theme = $request->getParsedBodyParamAsString('set_theme'); + if (! Config::getInstance()->settings['ThemeManager'] || $theme === '') { if ($request->isAjax()) { $this->response->addJSON('themeColorMode', ''); @@ -40,9 +38,8 @@ final class ThemeSetController implements InvocableController $this->themeManager->setActiveTheme($theme); - /** @var mixed $themeColorMode */ - $themeColorMode = $request->getParsedBodyParam('themeColorMode'); - if (is_string($themeColorMode) && $themeColorMode !== '') { + $themeColorMode = $request->getParsedBodyParamAsString('themeColorMode'); + if ($themeColorMode !== '') { $this->themeManager->theme->setColorMode($themeColorMode); } diff --git a/src/Controllers/UserPasswordController.php b/src/Controllers/UserPasswordController.php index d33d2e84b1..28bd6b78af 100644 --- a/src/Controllers/UserPasswordController.php +++ b/src/Controllers/UserPasswordController.php @@ -53,27 +53,28 @@ final class UserPasswordController implements InvocableController return $this->response->response(); } - $noPass = $request->getParsedBodyParam('nopass'); - $pmaPw = $request->getParsedBodyParam('pma_pw'); - $pmaPw2 = $request->getParsedBodyParam('pma_pw2'); + $noPass = $request->getParsedBodyParamAsStringOrNull('nopass'); /** * If the "change password" form has been submitted, checks for valid values * and submit the query or logout */ if ($noPass !== null) { - $password = $noPass == '1' ? '' : $pmaPw; + $pmaPw = $request->getParsedBodyParamAsString('pma_pw'); + $pmaPw2 = $request->getParsedBodyParamAsString('pma_pw2'); + + $password = $noPass === '1' ? '' : $pmaPw; $GLOBALS['change_password_message'] = $this->userPassword->setChangePasswordMsg( $pmaPw, $pmaPw2, - (bool) $noPass, + $noPass === '1', ); $message = $GLOBALS['change_password_message']['msg']; if (! $GLOBALS['change_password_message']['error']) { $sqlQuery = $this->userPassword->changePassword( $password, - $request->getParsedBodyParam('authentication_plugin'), + $request->getParsedBodyParamAsStringOrNull('authentication_plugin'), ); if ($request->isAjax()) { diff --git a/src/Plugins/Import/ImportCsv.php b/src/Plugins/Import/ImportCsv.php index 9ee2799146..9cf0807e11 100644 --- a/src/Plugins/Import/ImportCsv.php +++ b/src/Plugins/Import/ImportCsv.php @@ -171,15 +171,15 @@ class ImportCsv extends AbstractImportCsv { $this->replace = $request->getParsedBodyParam('csv_replace') !== null; $this->ignore = $request->getParsedBodyParam('csv_ignore') !== null; - $this->terminated = (string) $request->getParsedBodyParam('csv_terminated'); - $this->enclosed = (string) $request->getParsedBodyParam('csv_enclosed'); - $this->escaped = (string) $request->getParsedBodyParam('csv_escaped'); - $this->newLine = (string) $request->getParsedBodyParam('csv_new_line'); - $this->columns = (string) $request->getParsedBodyParam('csv_columns'); - $this->maxLines = min(0, (int) $request->getParsedBodyParam('csv_partial_import')); + $this->terminated = $request->getParsedBodyParamAsString('csv_terminated', ''); + $this->enclosed = $request->getParsedBodyParamAsString('csv_enclosed', ''); + $this->escaped = $request->getParsedBodyParamAsString('csv_escaped', ''); + $this->newLine = $request->getParsedBodyParamAsString('csv_new_line', ''); + $this->columns = $request->getParsedBodyParamAsString('csv_columns', ''); + $this->maxLines = min(0, (int) $request->getParsedBodyParamAsStringOrNull('csv_partial_import')); $this->csvHasColumnNames = $request->getParsedBodyParam('csv_col_names') !== null; - $this->newDatabaseName = (string) $request->getParsedBodyParam('csv_new_db_name'); - $this->newTableName = (string) $request->getParsedBodyParam('csv_new_tbl_name'); + $this->newDatabaseName = $request->getParsedBodyParamAsString('csv_new_db_name', ''); + $this->newTableName = $request->getParsedBodyParamAsString('csv_new_tbl_name', ''); } /** diff --git a/src/Plugins/Import/ImportLdi.php b/src/Plugins/Import/ImportLdi.php index 884097ec66..22a0fb4bf0 100644 --- a/src/Plugins/Import/ImportLdi.php +++ b/src/Plugins/Import/ImportLdi.php @@ -99,11 +99,11 @@ class ImportLdi extends AbstractImportCsv $this->localOption = $request->getParsedBodyParam('ldi_local_option') !== null; $this->replace = $request->getParsedBodyParam('ldi_replace') !== null; $this->ignore = $request->getParsedBodyParam('ldi_ignore') !== null; - $this->terminated = (string) $request->getParsedBodyParam('ldi_terminated'); - $this->enclosed = (string) $request->getParsedBodyParam('ldi_enclosed'); - $this->escaped = (string) $request->getParsedBodyParam('ldi_escaped'); - $this->newLine = (string) $request->getParsedBodyParam('ldi_new_line'); - $this->columns = (string) $request->getParsedBodyParam('ldi_columns'); + $this->terminated = $request->getParsedBodyParamAsString('ldi_terminated', ''); + $this->enclosed = $request->getParsedBodyParamAsString('ldi_enclosed', ''); + $this->escaped = $request->getParsedBodyParamAsString('ldi_escaped', ''); + $this->newLine = $request->getParsedBodyParamAsString('ldi_new_line', ''); + $this->columns = $request->getParsedBodyParamAsString('ldi_columns', ''); } /** diff --git a/tests/unit/Controllers/BrowseForeignersControllerTest.php b/tests/unit/Controllers/BrowseForeignersControllerTest.php index 75f15cafb5..7608719d51 100644 --- a/tests/unit/Controllers/BrowseForeignersControllerTest.php +++ b/tests/unit/Controllers/BrowseForeignersControllerTest.php @@ -10,7 +10,7 @@ use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Controllers\BrowseForeignersController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Template; use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Tests\Stubs\ResponseRenderer; @@ -27,16 +27,16 @@ final class BrowseForeignersControllerTest extends AbstractTestCase $config = Config::getInstance(); $config->selectedServer['DisableIS'] = true; - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['db', null, 'sakila'], - ['table', null, 'film_actor'], - ['field', null, 'actor_id'], - ['fieldkey', '', ''], - ['data', '', ''], - ['foreign_showAll', null, null], - ['foreign_filter', '', ''], - ]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'db' => 'sakila', + 'table' => 'film_actor', + 'field' => 'actor_id', + 'fieldkey' => '', + 'data' => '', + 'foreign_showAll' => null, + 'foreign_filter' => '', + ]); $dbiDummy = $this->createDbiDummy(); $dbiDummy->removeDefaultResults(); diff --git a/tests/unit/Controllers/CheckRelationsControllerTest.php b/tests/unit/Controllers/CheckRelationsControllerTest.php index 1746c3d961..68af761366 100644 --- a/tests/unit/Controllers/CheckRelationsControllerTest.php +++ b/tests/unit/Controllers/CheckRelationsControllerTest.php @@ -42,11 +42,6 @@ class CheckRelationsControllerTest extends AbstractTestCase Current::$table = ''; $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['create_pmadb', null, null], - ['fixall_pmadb', null, null], - ['fix_pmadb', null, null], - ]); $response = new ResponseRenderer(); Config::getInstance()->selectedServer['pmadb'] = ''; diff --git a/tests/unit/Controllers/Console/Bookmark/AddControllerTest.php b/tests/unit/Controllers/Console/Bookmark/AddControllerTest.php index 8f693b585d..7620f8bbd9 100644 --- a/tests/unit/Controllers/Console/Bookmark/AddControllerTest.php +++ b/tests/unit/Controllers/Console/Bookmark/AddControllerTest.php @@ -4,12 +4,14 @@ declare(strict_types=1); namespace PhpMyAdmin\Tests\Controllers\Console\Bookmark; +use InvalidArgumentException; use PhpMyAdmin\Bookmarks\BookmarkRepository; use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\ConfigStorage\RelationParameters; use PhpMyAdmin\Controllers\Console\Bookmark\AddController; use PhpMyAdmin\DatabaseInterface; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Tests\Stubs\ResponseRenderer; @@ -24,18 +26,18 @@ class AddControllerTest extends AbstractTestCase $dbi = $this->createDatabaseInterface(); DatabaseInterface::$instance = $dbi; $response = new ResponseRenderer(); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['db', null, null], - ['label', null, null], - ['bookmark_query', null, null], - ['shared', null, null], - ]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'db' => null, + 'label' => null, + 'bookmark_query' => null, + 'shared' => null, + ]); $relation = new Relation($dbi); $bookmarkRepository = new BookmarkRepository($dbi, $relation); $controller = new AddController($response, $bookmarkRepository); + $this->expectException(InvalidArgumentException::class); $controller($request); - self::assertSame(['message' => 'Incomplete params'], $response->getJSONResult()); } public function testWithoutRelationParameters(): void @@ -46,12 +48,6 @@ class AddControllerTest extends AbstractTestCase DatabaseInterface::$instance = $dbi; $response = new ResponseRenderer(); $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['db', null, 'test'], - ['label', null, 'test'], - ['bookmark_query', null, 'test'], - ['shared', null, 'test'], - ]); $relation = new Relation($dbi); $bookmarkRepository = new BookmarkRepository($dbi, $relation); $controller = new AddController($response, $bookmarkRepository); @@ -79,13 +75,13 @@ class AddControllerTest extends AbstractTestCase $dbi = $this->createDatabaseInterface($dbiDummy); DatabaseInterface::$instance = $dbi; $response = new ResponseRenderer(); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['db', null, 'test_db'], - ['label', null, 'test_label'], - ['bookmark_query', null, 'test_query'], - ['shared', null, 'true'], - ]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'db' => 'test_db', + 'label' => 'test_label', + 'bookmark_query' => 'test_query', + 'shared' => 'true', + ]); $relation = new Relation($dbi); $bookmarkRepository = new BookmarkRepository($dbi, $relation); $controller = new AddController($response, $bookmarkRepository); diff --git a/tests/unit/Controllers/Export/Template/CreateControllerTest.php b/tests/unit/Controllers/Export/Template/CreateControllerTest.php index efcb26df96..ba777eba57 100644 --- a/tests/unit/Controllers/Export/Template/CreateControllerTest.php +++ b/tests/unit/Controllers/Export/Template/CreateControllerTest.php @@ -11,7 +11,7 @@ use PhpMyAdmin\Controllers\Export\Template\CreateController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Export\Template as ExportTemplate; use PhpMyAdmin\Export\TemplateModel; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Template; use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Tests\Stubs\DbiDummy; @@ -48,13 +48,13 @@ class CreateControllerTest extends AbstractTestCase $response = new ResponseRenderer(); $template = new Template(); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['exportType', '', 'type'], - ['templateName', '', 'name'], - ['templateData', '', 'data'], - ['template_id', null, null], - ]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'exportType' => 'type', + 'templateName' => 'name', + 'templateData' => 'data', + 'template_id' => null, + ]); (new CreateController( $response, diff --git a/tests/unit/Controllers/Export/Template/DeleteControllerTest.php b/tests/unit/Controllers/Export/Template/DeleteControllerTest.php index 674eb9466b..195259958e 100644 --- a/tests/unit/Controllers/Export/Template/DeleteControllerTest.php +++ b/tests/unit/Controllers/Export/Template/DeleteControllerTest.php @@ -37,7 +37,6 @@ class DeleteControllerTest extends AbstractTestCase $response = new ResponseRenderer(); $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturn('1'); (new DeleteController( $response, diff --git a/tests/unit/Controllers/Export/Template/LoadControllerTest.php b/tests/unit/Controllers/Export/Template/LoadControllerTest.php index 980fe4b3c3..7db4d7b813 100644 --- a/tests/unit/Controllers/Export/Template/LoadControllerTest.php +++ b/tests/unit/Controllers/Export/Template/LoadControllerTest.php @@ -10,7 +10,7 @@ use PhpMyAdmin\ConfigStorage\RelationParameters; use PhpMyAdmin\Controllers\Export\Template\LoadController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Export\TemplateModel; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Tests\Stubs\DbiDummy; use PhpMyAdmin\Tests\Stubs\ResponseRenderer; @@ -45,8 +45,8 @@ class LoadControllerTest extends AbstractTestCase Config::getInstance()->selectedServer['user'] = 'user'; $response = new ResponseRenderer(); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturn('1'); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody(['templateId' => '1']); (new LoadController( $response, diff --git a/tests/unit/Controllers/Export/Template/UpdateControllerTest.php b/tests/unit/Controllers/Export/Template/UpdateControllerTest.php index f3c8d6df71..d69fa883fe 100644 --- a/tests/unit/Controllers/Export/Template/UpdateControllerTest.php +++ b/tests/unit/Controllers/Export/Template/UpdateControllerTest.php @@ -37,10 +37,6 @@ class UpdateControllerTest extends AbstractTestCase $response = new ResponseRenderer(); $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['templateId', null, '1'], - ['templateData', '', 'data'], - ]); (new UpdateController( $response, diff --git a/tests/unit/Controllers/LintControllerTest.php b/tests/unit/Controllers/LintControllerTest.php index fbad739e60..8e3244aa23 100644 --- a/tests/unit/Controllers/LintControllerTest.php +++ b/tests/unit/Controllers/LintControllerTest.php @@ -8,6 +8,7 @@ use Fig\Http\Message\StatusCodeInterface; use PhpMyAdmin\Controllers\LintController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Http\Factory\ResponseFactory; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Tests\AbstractTestCase; use PHPUnit\Framework\Attributes\CoversClass; @@ -95,13 +96,12 @@ final class LintControllerTest extends AbstractTestCase ]); self::assertNotFalse($expectedJson); - $request = self::createStub(ServerRequest::class); - $request->method('isAjax')->willReturn(true); - $request->method('getParsedBodyParam')->willReturnMap([ - ['sql_query', '', 'SELECT * FROM `actor` WHEREE `actor_id` = 1'], - ['options', null, null], - ]); - + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'ajax_request' => '1', + 'sql_query' => 'SELECT * FROM `actor` WHEREE `actor_id` = 1', + 'options' => null, + ]); $response = $this->getLintController()($request); self::assertSame(StatusCodeInterface::STATUS_OK, $response->getStatusCode()); diff --git a/tests/unit/Controllers/Normalization/CreateNewColumnControllerTest.php b/tests/unit/Controllers/Normalization/CreateNewColumnControllerTest.php index b2180f9d4e..bf60f77934 100644 --- a/tests/unit/Controllers/Normalization/CreateNewColumnControllerTest.php +++ b/tests/unit/Controllers/Normalization/CreateNewColumnControllerTest.php @@ -34,7 +34,6 @@ class CreateNewColumnControllerTest extends AbstractTestCase $response = new ResponseRenderer(); $template = new Template(); $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([['numFields', null, '1']]); $controller = new CreateNewColumnController( $response, diff --git a/tests/unit/Controllers/Normalization/FirstNormalForm/FirstStepControllerTest.php b/tests/unit/Controllers/Normalization/FirstNormalForm/FirstStepControllerTest.php index f4fbe49a93..bf9e93ee39 100644 --- a/tests/unit/Controllers/Normalization/FirstNormalForm/FirstStepControllerTest.php +++ b/tests/unit/Controllers/Normalization/FirstNormalForm/FirstStepControllerTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Controllers\Normalization\FirstNormalForm\FirstStepController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Normalization; use PhpMyAdmin\Template; use PhpMyAdmin\Tests\AbstractTestCase; @@ -36,8 +36,8 @@ class FirstStepControllerTest extends AbstractTestCase DatabaseInterface::$instance = $dbi; $response = new ResponseRenderer(); $template = new Template(); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([['normalizeTo', null, $normalizeTo]]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody(['normalizeTo' => $normalizeTo]); $controller = new FirstStepController( $response, diff --git a/tests/unit/Controllers/Normalization/MoveRepeatingGroupTest.php b/tests/unit/Controllers/Normalization/MoveRepeatingGroupTest.php index 63dd23bd81..093e90ac05 100644 --- a/tests/unit/Controllers/Normalization/MoveRepeatingGroupTest.php +++ b/tests/unit/Controllers/Normalization/MoveRepeatingGroupTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Controllers\Normalization\MoveRepeatingGroup; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Message; use PhpMyAdmin\Normalization; use PhpMyAdmin\Template; @@ -39,13 +39,13 @@ class MoveRepeatingGroupTest extends AbstractTestCase DatabaseInterface::$instance = $dbi; $response = new ResponseRenderer(); $template = new Template(); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['repeatingColumns', null, 'col1, col2'], - ['newTable', null, 'new_table'], - ['newColumn', null, 'new_column'], - ['primary_columns', null, 'id,col1'], - ]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'repeatingColumns' => 'col1, col2', + 'newTable' => 'new_table', + 'newColumn' => 'new_column', + 'primary_columns' => 'id,col1', + ]); $controller = new MoveRepeatingGroup( $response, diff --git a/tests/unit/Controllers/Normalization/SecondNormalForm/CreateNewTablesControllerTest.php b/tests/unit/Controllers/Normalization/SecondNormalForm/CreateNewTablesControllerTest.php index ecddddf1bc..c8bd630957 100644 --- a/tests/unit/Controllers/Normalization/SecondNormalForm/CreateNewTablesControllerTest.php +++ b/tests/unit/Controllers/Normalization/SecondNormalForm/CreateNewTablesControllerTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Controllers\Normalization\SecondNormalForm\CreateNewTablesController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Normalization; use PhpMyAdmin\Template; use PhpMyAdmin\Tests\AbstractTestCase; @@ -36,11 +36,11 @@ class CreateNewTablesControllerTest extends AbstractTestCase DatabaseInterface::$instance = $dbi; $response = new ResponseRenderer(); $template = new Template(); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['pd', null, json_encode(['ID, task' => [], 'task' => ['timestamp']])], - ['newTablesName', null, json_encode(['ID, task' => 'batch_log2', 'task' => 'table2'])], - ]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'pd' => json_encode(['ID, task' => [], 'task' => ['timestamp']]), + 'newTablesName' => json_encode(['ID, task' => 'batch_log2', 'task' => 'table2']), + ]); $controller = new CreateNewTablesController( $response, diff --git a/tests/unit/Controllers/Normalization/SecondNormalForm/NewTablesControllerTest.php b/tests/unit/Controllers/Normalization/SecondNormalForm/NewTablesControllerTest.php index 58a64de048..c70783ff03 100644 --- a/tests/unit/Controllers/Normalization/SecondNormalForm/NewTablesControllerTest.php +++ b/tests/unit/Controllers/Normalization/SecondNormalForm/NewTablesControllerTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Controllers\Normalization\SecondNormalForm\NewTablesController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Normalization; use PhpMyAdmin\Template; use PhpMyAdmin\Tests\AbstractTestCase; @@ -30,10 +30,10 @@ class NewTablesControllerTest extends AbstractTestCase DatabaseInterface::$instance = $dbi; $response = new ResponseRenderer(); $template = new Template(); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['pd', null, json_encode(['ID, task' => [], 'task' => ['timestamp']])], - ]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'pd' => json_encode(['ID, task' => [], 'task' => ['timestamp']]), + ]); $controller = new NewTablesController( $response, new Normalization($dbi, new Relation($dbi), new Transformations(), $template), diff --git a/tests/unit/Controllers/Normalization/ThirdNormalForm/CreateNewTablesControllerTest.php b/tests/unit/Controllers/Normalization/ThirdNormalForm/CreateNewTablesControllerTest.php index 7efdc0f788..4c9dbc9747 100644 --- a/tests/unit/Controllers/Normalization/ThirdNormalForm/CreateNewTablesControllerTest.php +++ b/tests/unit/Controllers/Normalization/ThirdNormalForm/CreateNewTablesControllerTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Controllers\Normalization\ThirdNormalForm\CreateNewTablesController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Normalization; use PhpMyAdmin\Template; use PhpMyAdmin\Tests\AbstractTestCase; @@ -53,8 +53,8 @@ class CreateNewTablesControllerTest extends AbstractTestCase DatabaseInterface::$instance = $dbi; $response = new ResponseRenderer(); $template = new Template(); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([['newTables', null, $newTables]]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody(['newTables' => $newTables]); $controller = new CreateNewTablesController( $response, diff --git a/tests/unit/Controllers/Normalization/ThirdNormalForm/NewTablesControllerTest.php b/tests/unit/Controllers/Normalization/ThirdNormalForm/NewTablesControllerTest.php index 21aa97553e..6188e71ecb 100644 --- a/tests/unit/Controllers/Normalization/ThirdNormalForm/NewTablesControllerTest.php +++ b/tests/unit/Controllers/Normalization/ThirdNormalForm/NewTablesControllerTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Controllers\Normalization\ThirdNormalForm\NewTablesController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Normalization; use PhpMyAdmin\Template; use PhpMyAdmin\Tests\AbstractTestCase; @@ -39,8 +39,11 @@ class NewTablesControllerTest extends AbstractTestCase DatabaseInterface::$instance = $dbi; $response = new ResponseRenderer(); $template = new Template(); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([['tables', null, $tables], ['pd', null, $pd]]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'tables' => $tables, + 'pd' => $pd, + ]); $controller = new NewTablesController( $response, diff --git a/tests/unit/Controllers/SchemaExportControllerTest.php b/tests/unit/Controllers/SchemaExportControllerTest.php index de9304106f..42354267f5 100644 --- a/tests/unit/Controllers/SchemaExportControllerTest.php +++ b/tests/unit/Controllers/SchemaExportControllerTest.php @@ -9,7 +9,7 @@ use PhpMyAdmin\Controllers\SchemaExportController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Export\Export; use PhpMyAdmin\Http\Factory\ResponseFactory; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Tests\Stubs\ResponseRenderer; use PHPUnit\Framework\Attributes\CoversClass; @@ -26,8 +26,8 @@ final class SchemaExportControllerTest extends AbstractTestCase { DatabaseInterface::$instance = $this->createDatabaseInterface(); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([['db', null, 'test_db'], ['export_type', null, 'svg']]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody(['db' => 'test_db', 'export_type' => 'svg']); $export = self::createStub(Export::class); $export->method('getExportSchemaInfo')->willReturn([ 'fileName' => 'file.svg', diff --git a/tests/unit/Controllers/Server/BinlogControllerTest.php b/tests/unit/Controllers/Server/BinlogControllerTest.php index 5550860ae2..7b50fd1ef9 100644 --- a/tests/unit/Controllers/Server/BinlogControllerTest.php +++ b/tests/unit/Controllers/Server/BinlogControllerTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\Controllers\Server\BinlogController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Tests\Stubs\DbiDummy; use PhpMyAdmin\Tests\Stubs\ResponseRenderer; @@ -50,8 +50,11 @@ class BinlogControllerTest extends AbstractTestCase $controller = new BinlogController($response, DatabaseInterface::getInstance()); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([['log', null, 'index1'], ['pos', 0, '3']]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'log' => 'index1', + 'pos' => '3', + ]); $this->dummyDbi->addSelectDb('mysql'); $controller($request); $this->dummyDbi->assertAllSelectsConsumed(); diff --git a/tests/unit/Controllers/Server/Databases/CreateControllerTest.php b/tests/unit/Controllers/Server/Databases/CreateControllerTest.php index 19c621a9dd..e5e06659af 100644 --- a/tests/unit/Controllers/Server/Databases/CreateControllerTest.php +++ b/tests/unit/Controllers/Server/Databases/CreateControllerTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\Controllers\Server\Databases\CreateController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Tests\Stubs\DbiDummy; use PhpMyAdmin\Tests\Stubs\ResponseRenderer; @@ -43,11 +43,11 @@ final class CreateControllerTest extends AbstractTestCase $controller = new CreateController($response, $this->dbi); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['new_db', null, 'test_db_error'], - ['db_collation', null, null], - ]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'new_db' => 'test_db_error', + 'db_collation' => null, + ]); $controller($request); $actual = $response->getJSONResult(); @@ -59,11 +59,11 @@ final class CreateControllerTest extends AbstractTestCase $controller = new CreateController($response, $this->dbi); - $request = self::createStub(ServerRequest::class); - $request->method('isAjax')->willReturn(true); - $request->method('getParsedBodyParam')->willReturnMap([ - ['new_db', null, 'test_db'], - ['db_collation', null, 'utf8_general_ci'], + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'ajax_request' => 'true', + 'new_db' => 'test_db', + 'db_collation' => 'utf8_general_ci', ]); $controller($request); diff --git a/tests/unit/Controllers/Server/Privileges/AccountLockControllerTest.php b/tests/unit/Controllers/Server/Privileges/AccountLockControllerTest.php index 629f12146c..63d8b0ad50 100644 --- a/tests/unit/Controllers/Server/Privileges/AccountLockControllerTest.php +++ b/tests/unit/Controllers/Server/Privileges/AccountLockControllerTest.php @@ -6,6 +6,7 @@ namespace PhpMyAdmin\Tests\Controllers\Server\Privileges; use PhpMyAdmin\Controllers\Server\Privileges\AccountLockController; use PhpMyAdmin\DatabaseInterface; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Message; use PhpMyAdmin\Server\Privileges\AccountLocking; @@ -20,7 +21,7 @@ class AccountLockControllerTest extends AbstractTestCase { private DatabaseInterface&Stub $dbiStub; - private ServerRequest&Stub $requestStub; + private ServerRequest $requestStub; private ResponseRenderer $responseRendererStub; @@ -35,9 +36,12 @@ class AccountLockControllerTest extends AbstractTestCase $this->dbiStub = self::createStub(DatabaseInterface::class); $this->dbiStub->method('isMariaDB')->willReturn(true); - $this->requestStub = self::createStub(ServerRequest::class); - $this->requestStub->method('isAjax')->willReturn(true); - $this->requestStub->method('getParsedBodyParam')->willReturn('test.user', 'test.host'); + $this->requestStub = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'ajax_request' => 'true', + 'username' => 'test.user', + 'hostname' => 'test.host', + ]); $this->responseRendererStub = new ResponseRenderer(); diff --git a/tests/unit/Controllers/Server/Privileges/AccountUnlockControllerTest.php b/tests/unit/Controllers/Server/Privileges/AccountUnlockControllerTest.php index 92907c3f36..c721d1c70a 100644 --- a/tests/unit/Controllers/Server/Privileges/AccountUnlockControllerTest.php +++ b/tests/unit/Controllers/Server/Privileges/AccountUnlockControllerTest.php @@ -6,6 +6,7 @@ namespace PhpMyAdmin\Tests\Controllers\Server\Privileges; use PhpMyAdmin\Controllers\Server\Privileges\AccountUnlockController; use PhpMyAdmin\DatabaseInterface; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Message; use PhpMyAdmin\Server\Privileges\AccountLocking; @@ -20,7 +21,7 @@ class AccountUnlockControllerTest extends AbstractTestCase { private DatabaseInterface&Stub $dbiStub; - private ServerRequest&Stub $requestStub; + private ServerRequest $requestStub; private ResponseRenderer $responseRendererStub; @@ -35,9 +36,12 @@ class AccountUnlockControllerTest extends AbstractTestCase $this->dbiStub = self::createStub(DatabaseInterface::class); $this->dbiStub->method('isMariaDB')->willReturn(true); - $this->requestStub = self::createStub(ServerRequest::class); - $this->requestStub->method('isAjax')->willReturn(true); - $this->requestStub->method('getParsedBodyParam')->willReturn('test.user', 'test.host'); + $this->requestStub = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'ajax_request' => 'true', + 'username' => 'test.user', + 'hostname' => 'test.host', + ]); $this->responseRendererStub = new ResponseRenderer(); diff --git a/tests/unit/Controllers/Server/Status/Monitor/GeneralLogControllerTest.php b/tests/unit/Controllers/Server/Status/Monitor/GeneralLogControllerTest.php index 1ce7138846..7bdd70dad9 100644 --- a/tests/unit/Controllers/Server/Status/Monitor/GeneralLogControllerTest.php +++ b/tests/unit/Controllers/Server/Status/Monitor/GeneralLogControllerTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\Controllers\Server\Status\Monitor\GeneralLogController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Server\Status\Data; use PhpMyAdmin\Server\Status\Monitor; use PhpMyAdmin\Template; @@ -62,12 +62,12 @@ class GeneralLogControllerTest extends AbstractTestCase $dbi, ); - $request = self::createStub(ServerRequest::class); - $request->method('isAjax')->willReturn(true); - $request->method('getParsedBodyParam')->willReturnMap([ - ['time_start', null, '0'], - ['time_end', null, '10'], - ['limitTypes', null, '1'], + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'ajax_request' => 'true', + 'time_start' => '0', + 'time_end' => '10', + 'limitTypes' => '1', ]); $this->dummyDbi->addSelectDb('mysql'); diff --git a/tests/unit/Controllers/Server/Status/Monitor/LogVarsControllerTest.php b/tests/unit/Controllers/Server/Status/Monitor/LogVarsControllerTest.php index a2b60b61ed..3d0a72231a 100644 --- a/tests/unit/Controllers/Server/Status/Monitor/LogVarsControllerTest.php +++ b/tests/unit/Controllers/Server/Status/Monitor/LogVarsControllerTest.php @@ -67,7 +67,6 @@ class LogVarsControllerTest extends AbstractTestCase $request = self::createStub(ServerRequest::class); $request->method('isAjax')->willReturn(true); - $request->method('getParsedBodyParam')->willReturnMap([['varName', null, 'varName']]); $this->dummyDbi->addSelectDb('mysql'); $controller($request); diff --git a/tests/unit/Controllers/Server/Status/Monitor/QueryAnalyzerControllerTest.php b/tests/unit/Controllers/Server/Status/Monitor/QueryAnalyzerControllerTest.php index 797238b35b..e74fc3762b 100644 --- a/tests/unit/Controllers/Server/Status/Monitor/QueryAnalyzerControllerTest.php +++ b/tests/unit/Controllers/Server/Status/Monitor/QueryAnalyzerControllerTest.php @@ -7,7 +7,7 @@ namespace PhpMyAdmin\Tests\Controllers\Server\Status\Monitor; use PhpMyAdmin\Config; use PhpMyAdmin\Controllers\Server\Status\Monitor\QueryAnalyzerController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Server\Status\Data; use PhpMyAdmin\Server\Status\Monitor; use PhpMyAdmin\Template; @@ -45,9 +45,12 @@ class QueryAnalyzerControllerTest extends AbstractTestCase $statusData = new Data($dbi, $config); $controller = new QueryAnalyzerController($response, new Template(), $statusData, new Monitor($dbi), $dbi); - $request = self::createStub(ServerRequest::class); - $request->method('isAjax')->willReturn(true); - $request->method('getParsedBodyParam')->willReturnMap([['database', '', 'database'], ['query', '', 'query']]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'ajax_request' => 'true', + 'database' => 'database', + 'query' => 'query', + ]); $dummyDbi->addSelectDb('mysql'); $dummyDbi->addSelectDb('database'); diff --git a/tests/unit/Controllers/Server/Status/Monitor/SlowLogControllerTest.php b/tests/unit/Controllers/Server/Status/Monitor/SlowLogControllerTest.php index 61ab52739f..93033fd6f5 100644 --- a/tests/unit/Controllers/Server/Status/Monitor/SlowLogControllerTest.php +++ b/tests/unit/Controllers/Server/Status/Monitor/SlowLogControllerTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\Controllers\Server\Status\Monitor\SlowLogController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Server\Status\Data; use PhpMyAdmin\Server\Status\Monitor; use PhpMyAdmin\Template; @@ -58,9 +58,12 @@ class SlowLogControllerTest extends AbstractTestCase $dbi, ); - $request = self::createStub(ServerRequest::class); - $request->method('isAjax')->willReturn(true); - $request->method('getParsedBodyParam')->willReturnMap([['time_start', null, '0'], ['time_end', null, '10']]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'ajax_request' => 'true', + 'time_start' => '0', + 'time_end' => '10', + ]); $this->dummyDbi->addSelectDb('mysql'); $controller($request); diff --git a/tests/unit/Controllers/Server/Status/Processes/RefreshControllerTest.php b/tests/unit/Controllers/Server/Status/Processes/RefreshControllerTest.php index bd98d82a6f..0b3373fd58 100644 --- a/tests/unit/Controllers/Server/Status/Processes/RefreshControllerTest.php +++ b/tests/unit/Controllers/Server/Status/Processes/RefreshControllerTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\Controllers\Server\Status\Processes\RefreshController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Server\Status\Data; use PhpMyAdmin\Server\Status\Processes; use PhpMyAdmin\Template; @@ -65,14 +65,14 @@ class RefreshControllerTest extends AbstractTestCase new Processes(DatabaseInterface::getInstance()), ); - $request = self::createStub(ServerRequest::class); - $request->method('isAjax')->willReturn(true); - $request->method('getParsedBodyParam')->willReturnMap([ - ['column_name', '', ''], - ['order_by_field', '', 'process'], - ['sort_order', '', 'DESC'], - ]); - $request->method('hasBodyParam')->willReturnMap([['full', true], ['showExecuting', false]]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'ajax_request' => 'true', + 'column_name' => '', + 'order_by_field' => 'process', + 'sort_order' => 'DESC', + 'full' => 'true', + ]); $controller($request); $html = $response->getHTMLResult(); diff --git a/tests/unit/Controllers/Server/Status/ProcessesControllerTest.php b/tests/unit/Controllers/Server/Status/ProcessesControllerTest.php index d2ed421e21..4df0bdd98f 100644 --- a/tests/unit/Controllers/Server/Status/ProcessesControllerTest.php +++ b/tests/unit/Controllers/Server/Status/ProcessesControllerTest.php @@ -8,6 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\Controllers\Server\Status\ProcessesController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Server\Status\Data; use PhpMyAdmin\Server\Status\Processes; @@ -85,14 +86,13 @@ class ProcessesControllerTest extends AbstractTestCase self::assertStringContainsString('Show full queries', $html); self::assertStringContainsString('index.php?route=/server/status/processes', $html); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['column_name', '', 'Database'], - ['full', null, '1'], - ['order_by_field', '', 'Db'], - ['sort_order', '', 'ASC'], - ]); - $request->method('hasBodyParam')->willReturnMap([['showExecuting', false]]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'column_name' => 'Database', + 'full' => '1', + 'order_by_field' => 'Db', + 'sort_order' => 'ASC', + ]); $this->dummyDbi->addSelectDb('mysql'); $controller($request); @@ -103,14 +103,13 @@ class ProcessesControllerTest extends AbstractTestCase self::assertStringContainsString('Database', $html); self::assertStringContainsString('DESC', $html); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['column_name', '', 'Host'], - ['full', null, '1'], - ['order_by_field', '', 'Host'], - ['sort_order', '', 'DESC'], - ]); - $request->method('hasBodyParam')->willReturnMap([['showExecuting', false]]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'column_name' => 'Host', + 'full' => '1', + 'order_by_field' => 'Host', + 'sort_order' => 'DESC', + ]); $this->dummyDbi->addSelectDb('mysql'); $controller($request); diff --git a/tests/unit/Controllers/Sql/EnumValuesControllerTest.php b/tests/unit/Controllers/Sql/EnumValuesControllerTest.php index 63dfd1b85e..3e5661179f 100644 --- a/tests/unit/Controllers/Sql/EnumValuesControllerTest.php +++ b/tests/unit/Controllers/Sql/EnumValuesControllerTest.php @@ -11,7 +11,7 @@ use PhpMyAdmin\ConfigStorage\RelationCleanup; use PhpMyAdmin\Controllers\Sql\EnumValuesController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Sql; use PhpMyAdmin\Template; use PhpMyAdmin\Tests\AbstractTestCase; @@ -44,12 +44,12 @@ class EnumValuesControllerTest extends AbstractTestCase Current::$database = 'cvv'; Current::$table = 'enums'; - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['db', null, 'cvv'], - ['table', null, 'enums'], - ['column', null, 'set'], - ['curr_value', null, 'b&c'], + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'db' => 'cvv', + 'table' => 'enums', + 'column' => 'set', + 'curr_value' => 'b&c', ]); $responseRenderer = new ResponseRenderer(); @@ -95,13 +95,13 @@ class EnumValuesControllerTest extends AbstractTestCase Current::$database = 'cvv'; Current::$table = 'enums'; - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['db', null, 'cvv'], - ['table', null, 'enums'], - ['column', null, 'set'], - ['curr_value', null, 'b&c'], - ]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'db' => 'cvv', + 'table' => 'enums', + 'column' => 'set', + 'curr_value' => 'b&c', + ]); $responseRenderer = new ResponseRenderer(); $template = new Template(); diff --git a/tests/unit/Controllers/Sql/SetValuesControllerTest.php b/tests/unit/Controllers/Sql/SetValuesControllerTest.php index 04703e19eb..1229270f6d 100644 --- a/tests/unit/Controllers/Sql/SetValuesControllerTest.php +++ b/tests/unit/Controllers/Sql/SetValuesControllerTest.php @@ -11,7 +11,7 @@ use PhpMyAdmin\ConfigStorage\RelationCleanup; use PhpMyAdmin\Controllers\Sql\SetValuesController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Sql; use PhpMyAdmin\Template; use PhpMyAdmin\Tests\AbstractTestCase; @@ -41,14 +41,13 @@ class SetValuesControllerTest extends AbstractTestCase $this->dummyDbi->addResult('SHOW COLUMNS FROM `cvv`.`enums` LIKE \'set\'', false); $this->dummyDbi->addResult('SHOW INDEXES FROM `cvv`.`enums`', false); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['ajax_request', null, true], - ['db', null, 'cvv'], - ['table', null, 'enums'], - ['column', null, 'set'], - ['curr_value', null, 'b&c'], - ]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'db' => 'cvv', + 'table' => 'enums', + 'column' => 'set', + 'curr_value' => 'b&c', + ]); Current::$database = 'cvv'; Current::$table = 'enums'; @@ -93,14 +92,13 @@ class SetValuesControllerTest extends AbstractTestCase ); $this->dummyDbi->addResult('SHOW INDEXES FROM `cvv`.`enums`', []); - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([ - ['ajax_request', null, true], - ['db', null, 'cvv'], - ['table', null, 'enums'], - ['column', null, 'set'], - ['curr_value', null, 'b&c'], - ]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody([ + 'db' => 'cvv', + 'table' => 'enums', + 'column' => 'set', + 'curr_value' => 'b&c', + ]); Current::$database = 'cvv'; Current::$table = 'enums'; diff --git a/tests/unit/Controllers/Table/DeleteRowsControllerTest.php b/tests/unit/Controllers/Table/DeleteRowsControllerTest.php index 0842468eb7..f5f56aff1c 100644 --- a/tests/unit/Controllers/Table/DeleteRowsControllerTest.php +++ b/tests/unit/Controllers/Table/DeleteRowsControllerTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\Controllers\Table\DeleteRowsController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Template; use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Tests\Stubs\ResponseRenderer; @@ -52,11 +52,8 @@ class DeleteRowsControllerTest extends AbstractTestCase $dbi = $this->createDatabaseInterface($dummyDbi); DatabaseInterface::$instance = $dbi; - $request = self::createStub(ServerRequest::class); - $request->method('hasBodyParam')->willReturnMap([['original_sql_query', true]]); - $request->method('getParsedBodyParam')->willReturnMap([ - ['original_sql_query', '', 'SELECT * FROM `test_db`.`test_table`'], - ]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody(['original_sql_query' => 'SELECT * FROM `test_db`.`test_table`']); $response = new ResponseRenderer(); (new DeleteRowsController($response, new Template(), $dbi))($request); diff --git a/tests/unit/Controllers/Table/TrackingControllerTest.php b/tests/unit/Controllers/Table/TrackingControllerTest.php index e0e8d47617..a3c894e309 100644 --- a/tests/unit/Controllers/Table/TrackingControllerTest.php +++ b/tests/unit/Controllers/Table/TrackingControllerTest.php @@ -51,7 +51,8 @@ class TrackingControllerTest extends AbstractTestCase $this->dummyDbi->addSelectDb('test_db'); $request = ServerRequestFactory::create()->createServerRequest('GET', 'http://example.com/') - ->withQueryParams(['db' => 'test_db', 'table' => 'test_table']); + ->withQueryParams(['db' => 'test_db', 'table' => 'test_table']) + ->withParsedBody(['version' => '', 'table' => '']); $responseRenderer = new ResponseRenderer(); $template = new Template(); diff --git a/tests/unit/Controllers/ThemeSetControllerTest.php b/tests/unit/Controllers/ThemeSetControllerTest.php index 91a98b83d5..be80955d29 100644 --- a/tests/unit/Controllers/ThemeSetControllerTest.php +++ b/tests/unit/Controllers/ThemeSetControllerTest.php @@ -7,7 +7,7 @@ namespace PhpMyAdmin\Tests\Controllers; use PhpMyAdmin\Config; use PhpMyAdmin\Controllers\ThemeSetController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Http\Factory\ServerRequestFactory; use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Tests\Stubs\ResponseRenderer; use PhpMyAdmin\Theme\ThemeManager; @@ -29,8 +29,8 @@ class ThemeSetControllerTest extends AbstractTestCase { Config::getInstance()->settings['ThemeManager'] = true; - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([['set_theme', null, 'theme_name']]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody(['set_theme' => 'theme_name', 'themeColorMode' => '']); $themeManager = self::createMock(ThemeManager::class); $themeManager->expects(self::once())->method('setActiveTheme')->with(self::equalTo('theme_name')); @@ -45,14 +45,13 @@ class ThemeSetControllerTest extends AbstractTestCase (new ThemeSetController(new ResponseRenderer(), $themeManager, $userPreferences))($request); } - /** @param string[]|string|null $themeName */ #[DataProvider('providerForTestWithoutTheme')] - public function testWithoutTheme(bool $hasThemes, array|string|null $themeName): void + public function testWithoutTheme(bool $hasThemes, string $themeName): void { Config::getInstance()->settings['ThemeManager'] = $hasThemes; - $request = self::createStub(ServerRequest::class); - $request->method('getParsedBodyParam')->willReturnMap([['set_theme', null, $themeName]]); + $request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/') + ->withParsedBody(['set_theme' => $themeName]); $themeManager = self::createMock(ThemeManager::class); $themeManager->expects(self::never())->method('setActiveTheme'); @@ -71,6 +70,6 @@ class ThemeSetControllerTest extends AbstractTestCase */ public static function providerForTestWithoutTheme(): iterable { - return [[true, null], [true, ''], [true, ['theme_name']], [false, null], [false, ''], [false, ['theme_name']]]; + return [[true, ''], [false, '']]; } }