From 719ab2326f7afa7fe570a9dc7feba5205f44b524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Fri, 16 Feb 2018 21:25:23 -0200 Subject: [PATCH 1/2] Replace static methods with instance methods MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MaurĂ­cio Meneghini Fauth --- libraries/classes/MultSubmits.php | 18 ++++++++-------- libraries/mult_submits.inc.php | 32 ++++++++++++++++------------- test/classes/MultSubmitsTest.php | 34 +++++++++++++++++-------------- 3 files changed, 46 insertions(+), 38 deletions(-) diff --git a/libraries/classes/MultSubmits.php b/libraries/classes/MultSubmits.php index 5ab82562f0..36b772e468 100644 --- a/libraries/classes/MultSubmits.php +++ b/libraries/classes/MultSubmits.php @@ -1,7 +1,7 @@ '; $html .= Url::getHiddenInputs($_url_params); @@ -382,7 +382,7 @@ class MultSubmits * * @return string */ - public static function getHtmlForReplacePrefixTable($action, array $_url_params) + public function getHtmlForReplacePrefixTable($action, array $_url_params) { $html = '
'; $html .= Url::getHiddenInputs($_url_params); @@ -416,7 +416,7 @@ class MultSubmits * * @return string */ - public static function getHtmlForAddPrefixTable($action, array $_url_params) + public function getHtmlForAddPrefixTable($action, array $_url_params) { $html = ''; $html .= Url::getHiddenInputs($_url_params); @@ -447,7 +447,7 @@ class MultSubmits * * @return string */ - public static function getHtmlForOtherActions($what, $action, array $_url_params, $full_query) + public function getHtmlForOtherActions($what, $action, array $_url_params, $full_query) { $html = ''; $html .= Url::getHiddenInputs($_url_params); @@ -487,7 +487,7 @@ class MultSubmits * * @return array */ - public static function getQueryFromSelected($what, $table, array $selected, array $views) + public function getQueryFromSelected($what, $table, array $selected, array $views) { $reload = false; $full_query_views = null; diff --git a/libraries/mult_submits.inc.php b/libraries/mult_submits.inc.php index 74f6ad4687..2ba1a72d91 100644 --- a/libraries/mult_submits.inc.php +++ b/libraries/mult_submits.inc.php @@ -11,6 +11,8 @@ use PhpMyAdmin\Message; use PhpMyAdmin\MultSubmits; use PhpMyAdmin\Response; use PhpMyAdmin\Sql; +use PhpMyAdmin\Template; +use PhpMyAdmin\Util; if (! defined('PHPMYADMIN')) { exit; @@ -46,6 +48,8 @@ global $db, $table, $clause_is_unique, $from_prefix, $goto, $selected, $selected_fld, $selected_recent_table, $sql_query, $submit_mult, $table_type, $to_prefix, $url_query, $pmaThemeImage; +$multSubmits = new MultSubmits(); + /** * Prepares the work and runs some other scripts if required */ @@ -92,21 +96,21 @@ if (! empty($submit_mult) case 'copy_tbl': $views = $GLOBALS['dbi']->getVirtualTables($db); list($full_query, $reload, $full_query_views) - = MultSubmits::getQueryFromSelected( + = $multSubmits->getQueryFromSelected( $submit_mult, $table, $selected, $views ); - $_url_params = MultSubmits::getUrlParams( + $_url_params = $multSubmits->getUrlParams( $submit_mult, $reload, $action, $db, $table, $selected, $views, isset($original_sql_query)? $original_sql_query : null, isset($original_url_query)? $original_url_query : null ); $response->disable(); $response->addHTML( - MultSubmits::getHtmlForCopyMultipleTables($action, $_url_params) + $multSubmits->getHtmlForCopyMultipleTables($action, $_url_params) ); exit; case 'show_create': - $show_create = PhpMyAdmin\Template::get( + $show_create = Template::get( 'database/structure/show_create' ) ->render( @@ -177,7 +181,7 @@ if (!empty($submit_mult) && !empty($what)) { $tooltip_truename, $tooltip_aliasname, $pos - ) = PhpMyAdmin\Util::getDbInfo($db, isset($sub_part) ? $sub_part : ''); + ) = Util::getDbInfo($db, isset($sub_part) ? $sub_part : ''); } else { include_once './libraries/server_common.inc.php'; @@ -185,12 +189,12 @@ if (!empty($submit_mult) && !empty($what)) { // Builds the query list($full_query, $reload, $full_query_views) - = MultSubmits::getQueryFromSelected( + = $multSubmits->getQueryFromSelected( $what, $table, $selected, $views ); // Displays the confirmation form - $_url_params = MultSubmits::getUrlParams( + $_url_params = $multSubmits->getUrlParams( $what, $reload, $action, $db, $table, $selected, $views, isset($original_sql_query)? $original_sql_query : null, isset($original_url_query)? $original_url_query : null @@ -200,14 +204,14 @@ if (!empty($submit_mult) && !empty($what)) { if ($what == 'replace_prefix_tbl' || $what == 'copy_tbl_change_prefix') { $response->disable(); $response->addHTML( - MultSubmits::getHtmlForReplacePrefixTable($action, $_url_params) + $multSubmits->getHtmlForReplacePrefixTable($action, $_url_params) ); } elseif ($what == 'add_prefix_tbl') { $response->disable(); - $response->addHTML(MultSubmits::getHtmlForAddPrefixTable($action, $_url_params)); + $response->addHTML($multSubmits->getHtmlForAddPrefixTable($action, $_url_params)); } else { $response->addHTML( - MultSubmits::getHtmlForOtherActions($what, $action, $_url_params, $full_query) + $multSubmits->getHtmlForOtherActions($what, $action, $_url_params, $full_query) ); } exit; @@ -220,7 +224,7 @@ if (!empty($submit_mult) && !empty($what)) { // Gets table primary key $GLOBALS['dbi']->selectDb($db); $result = $GLOBALS['dbi']->query( - 'SHOW KEYS FROM ' . PhpMyAdmin\Util::backquote($table) . ';' + 'SHOW KEYS FROM ' . Util::backquote($table) . ';' ); $primary = ''; while ($row = $GLOBALS['dbi']->fetchAssoc($result)) { @@ -236,13 +240,13 @@ if (!empty($submit_mult) && !empty($what)) { || $query_type == 'empty_tbl' || $query_type == 'row_delete' ) { - $default_fk_check_value = PhpMyAdmin\Util::handleDisableFKCheckInit(); + $default_fk_check_value = Util::handleDisableFKCheckInit(); } list( $result, $rebuild_database_list, $reload_ret, $run_parts, $execute_query_later, $sql_query, $sql_query_views - ) = MultSubmits::buildOrExecuteQueryForMulti( + ) = $multSubmits->buildOrExecuteQueryForMulti( $query_type, $selected, $db, $table, $views, isset($primary) ? $primary : null, isset($from_prefix) ? $from_prefix : null, @@ -300,7 +304,7 @@ if (!empty($submit_mult) && !empty($what)) { || $query_type == 'empty_tbl' || $query_type == 'row_delete' ) { - PhpMyAdmin\Util::handleDisableFKCheckCleanup($default_fk_check_value); + Util::handleDisableFKCheckCleanup($default_fk_check_value); } if ($rebuild_database_list) { // avoid a problem with the database list navigator diff --git a/test/classes/MultSubmitsTest.php b/test/classes/MultSubmitsTest.php index 0b9cc67a71..9363700ee0 100644 --- a/test/classes/MultSubmitsTest.php +++ b/test/classes/MultSubmitsTest.php @@ -20,12 +20,14 @@ use PHPUnit\Framework\TestCase; */ class MultSubmitsTest extends TestCase { + private $multSubmits; + /** * Test for setUp * * @return void */ - public function setUp() + protected function setUp() { //$GLOBALS $GLOBALS['cfg']['MaxRows'] = 10; @@ -66,10 +68,12 @@ class MultSubmitsTest extends TestCase ->will($this->returnValue(true)); $GLOBALS['dbi'] = $dbi; + + $this->multSubmits = new MultSubmits(); } /** - * Test for MultSubmits::getHtmlForReplacePrefixTable + * Test for getHtmlForReplacePrefixTable * * @return void */ @@ -79,7 +83,7 @@ class MultSubmitsTest extends TestCase $_url_params = array('url_query'=>'PMA_original_url_query'); //Call the test function - $html = MultSubmits::getHtmlForReplacePrefixTable($action, $_url_params); + $html = $this->multSubmits->getHtmlForReplacePrefixTable($action, $_url_params); //form action $this->assertContains( @@ -99,7 +103,7 @@ class MultSubmitsTest extends TestCase } /** - * Test for MultSubmits::getHtmlForAddPrefixTable + * Test for getHtmlForAddPrefixTable * * @return void */ @@ -109,7 +113,7 @@ class MultSubmitsTest extends TestCase $_url_params = array('url_query'=>'PMA_original_url_query'); //Call the test function - $html = MultSubmits::getHtmlForAddPrefixTable($action, $_url_params); + $html = $this->multSubmits->getHtmlForAddPrefixTable($action, $_url_params); //form action $this->assertContains( @@ -129,7 +133,7 @@ class MultSubmitsTest extends TestCase } /** - * Test for MultSubmits::getHtmlForOtherActions + * Test for getHtmlForOtherActions * * @return void */ @@ -141,7 +145,7 @@ class MultSubmitsTest extends TestCase $full_query = 'select column from PMA_table'; //Call the test function - $html = MultSubmits::getHtmlForOtherActions( + $html = $this->multSubmits->getHtmlForOtherActions( $what, $action, $_url_params, $full_query ); @@ -177,7 +181,7 @@ class MultSubmitsTest extends TestCase } /** - * Test for MultSubmits::getUrlParams + * Test for getUrlParams * * @return void */ @@ -195,7 +199,7 @@ class MultSubmitsTest extends TestCase $original_sql_query = "original_sql_query"; $original_url_query = "original_url_query"; - $_url_params = MultSubmits::getUrlParams( + $_url_params = $this->multSubmits->getUrlParams( $what, $reload, $action, $db, $table, $selected, $views, $original_sql_query, $original_url_query ); @@ -222,7 +226,7 @@ class MultSubmitsTest extends TestCase } /** - * Test for MultSubmits::buildOrExecuteQueryForMulti + * Test for buildOrExecuteQueryForMulti * * @return void */ @@ -246,7 +250,7 @@ class MultSubmitsTest extends TestCase list( $result, $rebuild_database_list, $reload_ret, $run_parts, $execute_query_later,, - ) = MultSubmits::buildOrExecuteQueryForMulti( + ) = $this->multSubmits->buildOrExecuteQueryForMulti( $query_type, $selected, $db, $table, $views, $primary, $from_prefix, $to_prefix ); @@ -278,7 +282,7 @@ class MultSubmitsTest extends TestCase $query_type = 'analyze_tbl'; list( ,,,, $execute_query_later,, - ) = MultSubmits::buildOrExecuteQueryForMulti( + ) = $this->multSubmits->buildOrExecuteQueryForMulti( $query_type, $selected, $db, $table, $views, $primary, $from_prefix, $to_prefix ); @@ -291,7 +295,7 @@ class MultSubmitsTest extends TestCase } /** - * Test for MultSubmits::getQueryFromSelected + * Test for getQueryFromSelected * * @return void */ @@ -307,7 +311,7 @@ class MultSubmitsTest extends TestCase ); list($full_query, $reload, $full_query_views) - = MultSubmits::getQueryFromSelected( + = $this->multSubmits->getQueryFromSelected( $what, $table, $selected, $views ); @@ -332,7 +336,7 @@ class MultSubmitsTest extends TestCase $what = "drop_db"; list($full_query, $reload, $full_query_views) - = MultSubmits::getQueryFromSelected( + = $this->multSubmits->getQueryFromSelected( $what, $table, $selected, $views ); From 7f2031f9bb9b505a998d1b693dbdf4b8156918d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Sat, 17 Feb 2018 01:42:50 -0200 Subject: [PATCH 2/2] Fix coding styles issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MaurĂ­cio Meneghini Fauth --- libraries/classes/MultSubmits.php | 588 ++++++++++++++++-------------- libraries/mult_submits.inc.php | 2 +- test/classes/MultSubmitsTest.php | 178 +++++---- 3 files changed, 415 insertions(+), 353 deletions(-) diff --git a/libraries/classes/MultSubmits.php b/libraries/classes/MultSubmits.php index 36b772e468..369e66511d 100644 --- a/libraries/classes/MultSubmits.php +++ b/libraries/classes/MultSubmits.php @@ -27,291 +27,317 @@ class MultSubmits /** * Gets url params * - * @param string $what mult submit type - * @param bool $reload is reload - * @param string $action action type - * @param string $db database name - * @param string $table table name - * @param array $selected selected rows(table,db) - * @param array|null $views table views - * @param string $original_sql_query original sql query - * @param string $original_url_query original url query + * @param string $what mult submit type + * @param bool $reload is reload + * @param string $action action type + * @param string $db database name + * @param string $table table name + * @param array $selected selected rows(table,db) + * @param array|null $views table views + * @param string $originalSqlQuery original sql query + * @param string $originalUrlQuery original url query * * @return array */ public function getUrlParams( - $what, $reload, $action, $db, $table, array $selected, $views, - $original_sql_query, $original_url_query + $what, + $reload, + $action, + $db, + $table, + array $selected, + $views, + $originalSqlQuery, + $originalUrlQuery ) { - $_url_params = array( + $urlParams = [ 'query_type' => $what, 'reload' => (! empty($reload) ? 1 : 0), - ); + ]; if (mb_strpos(' ' . $action, 'db_') == 1) { - $_url_params['db']= $db; + $urlParams['db']= $db; } elseif (mb_strpos(' ' . $action, 'tbl_') == 1 || $what == 'row_delete' ) { - $_url_params['db']= $db; - $_url_params['table']= $table; + $urlParams['db'] = $db; + $urlParams['table'] = $table; } - foreach ($selected as $sval) { + foreach ($selected as $selectedValue) { if ($what == 'row_delete') { - $_url_params['selected'][] = 'DELETE FROM ' + $urlParams['selected'][] = 'DELETE FROM ' . Util::backquote($table) - . ' WHERE ' . $sval . ' LIMIT 1;'; + . ' WHERE ' . $selectedValue . ' LIMIT 1;'; } else { - $_url_params['selected'][] = $sval; + $urlParams['selected'][] = $selectedValue; } } if ($what == 'drop_tbl' && !empty($views)) { foreach ($views as $current) { - $_url_params['views'][] = $current; + $urlParams['views'][] = $current; } } if ($what == 'row_delete') { - $_url_params['original_sql_query'] = $original_sql_query; - if (! empty($original_url_query)) { - $_url_params['original_url_query'] = $original_url_query; + $urlParams['original_sql_query'] = $originalSqlQuery; + if (! empty($originalUrlQuery)) { + $urlParams['original_url_query'] = $originalUrlQuery; } } - return $_url_params; + return $urlParams; } /** - * Builds or execute queries for multiple elements, depending on $query_type + * Builds or execute queries for multiple elements, depending on $queryType * - * @param string $query_type query type - * @param array $selected selected tables - * @param string $db db name - * @param string $table table name - * @param array|null $views table views - * @param string $primary table primary - * @param string $from_prefix from prefix original - * @param string $to_prefix to prefix original + * @param string $queryType query type + * @param array $selected selected tables + * @param string $db db name + * @param string $table table name + * @param array|null $views table views + * @param string $primary table primary + * @param string $fromPrefix from prefix original + * @param string $toPrefix to prefix original * * @return array */ - public function buildOrExecuteQueryForMulti( - $query_type, array $selected, $db, $table, $views, $primary, - $from_prefix, $to_prefix + public function buildOrExecuteQuery( + $queryType, + array $selected, + $db, + $table, + $views, + $primary, + $fromPrefix, + $toPrefix ) { - $rebuild_database_list = false; + $rebuildDatabaseList = false; $reload = null; - $a_query = null; - $sql_query = ''; - $sql_query_views = null; + $aQuery = null; + $sqlQuery = ''; + $sqlQueryViews = null; // whether to run query after each pass - $run_parts = false; + $runParts = false; // whether to execute the query at the end (to display results) - $execute_query_later = false; + $executeQueryLater = false; $result = null; - if ($query_type == 'drop_tbl') { - $sql_query_views = ''; + if ($queryType == 'drop_tbl') { + $sqlQueryViews = ''; } - $selected_cnt = count($selected); + $selectedCount = count($selected); $deletes = false; - $copy_tbl =false; + $copyTable = false; - for ($i = 0; $i < $selected_cnt; $i++) { - switch ($query_type) { - case 'row_delete': - $deletes = true; - $a_query = $selected[$i]; - $run_parts = true; - break; + for ($i = 0; $i < $selectedCount; $i++) { + switch ($queryType) { + case 'row_delete': + $deletes = true; + $aQuery = $selected[$i]; + $runParts = true; + break; - case 'drop_db': - RelationCleanup::database($selected[$i]); - $a_query = 'DROP DATABASE ' + case 'drop_db': + RelationCleanup::database($selected[$i]); + $aQuery = 'DROP DATABASE ' . Util::backquote($selected[$i]); - $reload = 1; - $run_parts = true; - $rebuild_database_list = true; - break; + $reload = 1; + $runParts = true; + $rebuildDatabaseList = true; + break; - case 'drop_tbl': - RelationCleanup::table($db, $selected[$i]); - $current = $selected[$i]; - if (!empty($views) && in_array($current, $views)) { - $sql_query_views .= (empty($sql_query_views) ? 'DROP VIEW ' : ', ') - . Util::backquote($current); - } else { - $sql_query .= (empty($sql_query) ? 'DROP TABLE ' : ', ') - . Util::backquote($current); - } - $reload = 1; - break; + case 'drop_tbl': + RelationCleanup::table($db, $selected[$i]); + $current = $selected[$i]; + if (!empty($views) && in_array($current, $views)) { + $sqlQueryViews .= (empty($sqlQueryViews) ? 'DROP VIEW ' : ', ') + . Util::backquote($current); + } else { + $sqlQuery .= (empty($sqlQuery) ? 'DROP TABLE ' : ', ') + . Util::backquote($current); + } + $reload = 1; + break; - case 'check_tbl': - $sql_query .= (empty($sql_query) ? 'CHECK TABLE ' : ', ') - . Util::backquote($selected[$i]); - $execute_query_later = true; - break; + case 'check_tbl': + $sqlQuery .= (empty($sqlQuery) ? 'CHECK TABLE ' : ', ') + . Util::backquote($selected[$i]); + $executeQueryLater = true; + break; - case 'optimize_tbl': - $sql_query .= (empty($sql_query) ? 'OPTIMIZE TABLE ' : ', ') - . Util::backquote($selected[$i]); - $execute_query_later = true; - break; + case 'optimize_tbl': + $sqlQuery .= (empty($sqlQuery) ? 'OPTIMIZE TABLE ' : ', ') + . Util::backquote($selected[$i]); + $executeQueryLater = true; + break; - case 'analyze_tbl': - $sql_query .= (empty($sql_query) ? 'ANALYZE TABLE ' : ', ') - . Util::backquote($selected[$i]); - $execute_query_later = true; - break; + case 'analyze_tbl': + $sqlQuery .= (empty($sqlQuery) ? 'ANALYZE TABLE ' : ', ') + . Util::backquote($selected[$i]); + $executeQueryLater = true; + break; - case 'checksum_tbl': - $sql_query .= (empty($sql_query) ? 'CHECKSUM TABLE ' : ', ') - . Util::backquote($selected[$i]); - $execute_query_later = true; - break; + case 'checksum_tbl': + $sqlQuery .= (empty($sqlQuery) ? 'CHECKSUM TABLE ' : ', ') + . Util::backquote($selected[$i]); + $executeQueryLater = true; + break; - case 'repair_tbl': - $sql_query .= (empty($sql_query) ? 'REPAIR TABLE ' : ', ') - . Util::backquote($selected[$i]); - $execute_query_later = true; - break; + case 'repair_tbl': + $sqlQuery .= (empty($sqlQuery) ? 'REPAIR TABLE ' : ', ') + . Util::backquote($selected[$i]); + $executeQueryLater = true; + break; - case 'empty_tbl': - $deletes = true; - $a_query = 'TRUNCATE '; - $a_query .= Util::backquote($selected[$i]); - $run_parts = true; - break; + case 'empty_tbl': + $deletes = true; + $aQuery = 'TRUNCATE '; + $aQuery .= Util::backquote($selected[$i]); + $runParts = true; + break; - case 'drop_fld': - RelationCleanup::column($db, $table, $selected[$i]); - $sql_query .= (empty($sql_query) - ? 'ALTER TABLE ' . Util::backquote($table) - : ',') - . ' DROP ' . Util::backquote($selected[$i]) - . (($i == $selected_cnt-1) ? ';' : ''); - break; + case 'drop_fld': + RelationCleanup::column($db, $table, $selected[$i]); + $sqlQuery .= (empty($sqlQuery) + ? 'ALTER TABLE ' . Util::backquote($table) + : ',') + . ' DROP ' . Util::backquote($selected[$i]) + . (($i == $selectedCount - 1) ? ';' : ''); + break; - case 'primary_fld': - $sql_query .= (empty($sql_query) + case 'primary_fld': + $sqlQuery .= (empty($sqlQuery) ? 'ALTER TABLE ' . Util::backquote($table) . (empty($primary) ? '' : ' DROP PRIMARY KEY,') . ' ADD PRIMARY KEY( ' : ', ') - . Util::backquote($selected[$i]) - . (($i == $selected_cnt-1) ? ');' : ''); - break; + . Util::backquote($selected[$i]) + . (($i == $selectedCount - 1) ? ');' : ''); + break; - case 'index_fld': - $sql_query .= (empty($sql_query) + case 'index_fld': + $sqlQuery .= (empty($sqlQuery) ? 'ALTER TABLE ' . Util::backquote($table) . ' ADD INDEX( ' : ', ') - . Util::backquote($selected[$i]) - . (($i == $selected_cnt-1) ? ');' : ''); - break; + . Util::backquote($selected[$i]) + . (($i == $selectedCount - 1) ? ');' : ''); + break; - case 'unique_fld': - $sql_query .= (empty($sql_query) + case 'unique_fld': + $sqlQuery .= (empty($sqlQuery) ? 'ALTER TABLE ' . Util::backquote($table) . ' ADD UNIQUE( ' : ', ') - . Util::backquote($selected[$i]) - . (($i == $selected_cnt-1) ? ');' : ''); - break; + . Util::backquote($selected[$i]) + . (($i == $selectedCount - 1) ? ');' : ''); + break; - case 'spatial_fld': - $sql_query .= (empty($sql_query) + case 'spatial_fld': + $sqlQuery .= (empty($sqlQuery) ? 'ALTER TABLE ' . Util::backquote($table) . ' ADD SPATIAL( ' : ', ') - . Util::backquote($selected[$i]) - . (($i == $selected_cnt-1) ? ');' : ''); - break; + . Util::backquote($selected[$i]) + . (($i == $selectedCount - 1) ? ');' : ''); + break; - case 'fulltext_fld': - $sql_query .= (empty($sql_query) + case 'fulltext_fld': + $sqlQuery .= (empty($sqlQuery) ? 'ALTER TABLE ' . Util::backquote($table) . ' ADD FULLTEXT( ' : ', ') - . Util::backquote($selected[$i]) - . (($i == $selected_cnt-1) ? ');' : ''); - break; + . Util::backquote($selected[$i]) + . (($i == $selectedCount - 1) ? ');' : ''); + break; - case 'add_prefix_tbl': - $newtablename = $_POST['add_prefix'] . $selected[$i]; - // ADD PREFIX TO TABLE NAME - $a_query = 'ALTER TABLE ' + case 'add_prefix_tbl': + $newTableName = $_POST['add_prefix'] . $selected[$i]; + // ADD PREFIX TO TABLE NAME + $aQuery = 'ALTER TABLE ' . Util::backquote($selected[$i]) . ' RENAME ' - . Util::backquote($newtablename); - $run_parts = true; - break; + . Util::backquote($newTableName); + $runParts = true; + break; - case 'replace_prefix_tbl': - $current = $selected[$i]; - $subFromPrefix = mb_substr( - $current, - 0, - mb_strlen($from_prefix) - ); - if ($subFromPrefix == $from_prefix) { - $newtablename = $to_prefix - . mb_substr( - $current, - mb_strlen($from_prefix) - ); - } else { - $newtablename = $current; - } - // CHANGE PREFIX PATTERN - $a_query = 'ALTER TABLE ' + case 'replace_prefix_tbl': + $current = $selected[$i]; + $subFromPrefix = mb_substr( + $current, + 0, + mb_strlen($fromPrefix) + ); + if ($subFromPrefix == $fromPrefix) { + $newTableName = $toPrefix + . mb_substr( + $current, + mb_strlen($fromPrefix) + ); + } else { + $newTableName = $current; + } + // CHANGE PREFIX PATTERN + $aQuery = 'ALTER TABLE ' . Util::backquote($selected[$i]) . ' RENAME ' - . Util::backquote($newtablename); - $run_parts = true; - break; + . Util::backquote($newTableName); + $runParts = true; + break; - case 'copy_tbl_change_prefix': - $run_parts = true; - $copy_tbl = true; + case 'copy_tbl_change_prefix': + $runParts = true; + $copyTable = true; - $current = $selected[$i]; - $newtablename = $to_prefix . - mb_substr($current, mb_strlen($from_prefix)); + $current = $selected[$i]; + $newTableName = $toPrefix . + mb_substr($current, mb_strlen($fromPrefix)); - // COPY TABLE AND CHANGE PREFIX PATTERN - Table::moveCopy( - $db, $current, $db, $newtablename, - 'data', false, 'one_table' - ); - break; + // COPY TABLE AND CHANGE PREFIX PATTERN + Table::moveCopy( + $db, + $current, + $db, + $newTableName, + 'data', + false, + 'one_table' + ); + break; - case 'copy_tbl': - $run_parts = true; - $copy_tbl = true; - Table::moveCopy($db, $selected[$i], $_POST['target_db'], $selected[$i], $_POST['what'], false, 'one_table'); - if (isset($_POST['adjust_privileges']) && !empty($_POST['adjust_privileges'])) { - Operations::adjustPrivilegesCopyTable($db, $selected[$i], $_POST['target_db'], $selected[$i]); - } - break; + case 'copy_tbl': + $runParts = true; + $copyTable = true; + Table::moveCopy( + $db, + $selected[$i], + $_POST['target_db'], + $selected[$i], + $_POST['what'], + false, + 'one_table' + ); + if (isset($_POST['adjust_privileges']) && !empty($_POST['adjust_privileges'])) { + Operations::adjustPrivilegesCopyTable($db, $selected[$i], $_POST['target_db'], $selected[$i]); + } + break; } // end switch // All "DROP TABLE", "DROP FIELD", "OPTIMIZE TABLE" and "REPAIR TABLE" // statements will be run at once below - if ($run_parts && !$copy_tbl) { - $sql_query .= $a_query . ';' . "\n"; - if ($query_type != 'drop_db') { + if ($runParts && !$copyTable) { + $sqlQuery .= $aQuery . ';' . "\n"; + if ($queryType != 'drop_db') { $GLOBALS['dbi']->selectDb($db); } - $result = $GLOBALS['dbi']->query($a_query); + $result = $GLOBALS['dbi']->query($aQuery); - if ($query_type == 'drop_db') { + if ($queryType == 'drop_db') { Transformations::clear($selected[$i]); - } elseif ($query_type == 'drop_tbl') { + } elseif ($queryType == 'drop_tbl') { Transformations::clear($db, $selected[$i]); - } elseif ($query_type == 'drop_fld') { + } elseif ($queryType == 'drop_fld') { Transformations::clear($db, $table, $selected[$i]); } } // end if @@ -319,38 +345,46 @@ class MultSubmits if ($deletes && ! empty($_REQUEST['pos'])) { $_REQUEST['pos'] = Sql::calculatePosForLastPage( - $db, $table, isset($_REQUEST['pos']) ? $_REQUEST['pos'] : null + $db, + $table, + isset($_REQUEST['pos']) ? $_REQUEST['pos'] : null ); } - return array( - $result, $rebuild_database_list, $reload, - $run_parts, $execute_query_later, $sql_query, $sql_query_views - ); + return [ + $result, + $rebuildDatabaseList, + $reload, + $runParts, + $executeQueryLater, + $sqlQuery, + $sqlQueryViews + ]; } /** * Gets HTML for copy tables form * - * @param string $action action type - * @param array $_url_params URL params + * @param string $action action type + * @param array $urlParams URL params * * @return string */ - public function getHtmlForCopyMultipleTables($action, array $_url_params) + public function getHtmlForCopyMultipleTables($action, array $urlParams) { $html = ''; - $html .= Url::getHiddenInputs($_url_params); + $html .= Url::getHiddenInputs($urlParams); $html .= '
'; - $databases_list = $GLOBALS['dblist']->databases; - foreach ($databases_list as $key => $db_name) - if ($db_name == $GLOBALS['db']){ - $databases_list->offsetUnset($key); + $databasesList = $GLOBALS['dblist']->databases; + foreach ($databasesList as $key => $databaseName) { + if ($databaseName == $GLOBALS['db']) { + $databasesList->offsetUnset($key); break; } + } $html .= ''; $html .= ''; $html .= '

'; $html .= '
'; @@ -371,21 +405,21 @@ class MultSubmits $html .= '
'; $html .= ''; $html .= ''; - return $html; + return $html; } /** * Gets HTML for replace_prefix_tbl or copy_tbl_change_prefix * - * @param string $action action type - * @param array $_url_params URL params + * @param string $action action type + * @param array $urlParams URL params * * @return string */ - public function getHtmlForReplacePrefixTable($action, array $_url_params) + public function getHtmlForReplacePrefixTable($action, array $urlParams) { $html = '
'; - $html .= Url::getHiddenInputs($_url_params); + $html .= Url::getHiddenInputs($urlParams); $html .= '
'; $html .= ''; $html .= ''; @@ -411,15 +445,15 @@ class MultSubmits /** * Gets HTML for add_prefix_tbl * - * @param string $action action type - * @param array $_url_params URL params + * @param string $action action type + * @param array $urlParams URL params * * @return string */ - public function getHtmlForAddPrefixTable($action, array $_url_params) + public function getHtmlForAddPrefixTable($action, array $urlParams) { $html = ''; - $html .= Url::getHiddenInputs($_url_params); + $html .= Url::getHiddenInputs($urlParams); $html .= '
'; $html .= '
'; $html .= ''; @@ -440,17 +474,17 @@ class MultSubmits /** * Gets HTML for other mult_submits actions * - * @param string $what mult_submit type - * @param string $action action type - * @param array $_url_params URL params - * @param string $full_query full sql query string + * @param string $what mult_submit type + * @param string $action action type + * @param array $urlParams URL params + * @param string $fullQuery full sql query string * * @return string */ - public function getHtmlForOtherActions($what, $action, array $_url_params, $full_query) + public function getHtmlForOtherActions($what, $action, array $urlParams, $fullQuery) { $html = ''; - $html .= Url::getHiddenInputs($_url_params); + $html .= Url::getHiddenInputs($urlParams); $html .= '
'; $html .= ''; if ($what == 'drop_db') { @@ -458,7 +492,7 @@ class MultSubmits } $html .= __('Do you really want to execute the following query?'); $html .= ''; - $html .= '' . $full_query . ''; + $html .= '' . $fullQuery . ''; $html .= '
'; $html .= '
'; // Display option to disable foreign key checks while dropping tables @@ -490,98 +524,98 @@ class MultSubmits public function getQueryFromSelected($what, $table, array $selected, array $views) { $reload = false; - $full_query_views = null; - $full_query = ''; + $fullQueryViews = null; + $fullQuery = ''; if ($what == 'drop_tbl') { - $full_query_views = ''; + $fullQueryViews = ''; } - $selected_cnt = count($selected); + $selectedCount = count($selected); $i = 0; - foreach ($selected as $sval) { + foreach ($selected as $selectedValue) { switch ($what) { - case 'row_delete': - $full_query .= 'DELETE FROM ' + case 'row_delete': + $fullQuery .= 'DELETE FROM ' . Util::backquote(htmlspecialchars($table)) // Do not append a "LIMIT 1" clause here // (it's not binlog friendly). // We don't need the clause because the calling panel permits // this feature only when there is a unique index. - . ' WHERE ' . htmlspecialchars($sval) + . ' WHERE ' . htmlspecialchars($selectedValue) . ';
'; - break; - case 'drop_db': - $full_query .= 'DROP DATABASE ' - . Util::backquote(htmlspecialchars($sval)) + break; + case 'drop_db': + $fullQuery .= 'DROP DATABASE ' + . Util::backquote(htmlspecialchars($selectedValue)) . ';
'; - $reload = true; - break; + $reload = true; + break; - case 'drop_tbl': - $current = $sval; - if (!empty($views) && in_array($current, $views)) { - $full_query_views .= (empty($full_query_views) ? 'DROP VIEW ' : ', ') + case 'drop_tbl': + $current = $selectedValue; + if (!empty($views) && in_array($current, $views)) { + $fullQueryViews .= (empty($fullQueryViews) ? 'DROP VIEW ' : ', ') . Util::backquote(htmlspecialchars($current)); - } else { - $full_query .= (empty($full_query) ? 'DROP TABLE ' : ', ') + } else { + $fullQuery .= (empty($fullQuery) ? 'DROP TABLE ' : ', ') . Util::backquote(htmlspecialchars($current)); - } - break; + } + break; - case 'empty_tbl': - $full_query .= 'TRUNCATE '; - $full_query .= Util::backquote(htmlspecialchars($sval)) + case 'empty_tbl': + $fullQuery .= 'TRUNCATE '; + $fullQuery .= Util::backquote(htmlspecialchars($selectedValue)) . ';
'; - break; + break; - case 'primary_fld': - if ($full_query == '') { - $full_query .= 'ALTER TABLE ' + case 'primary_fld': + if ($fullQuery == '') { + $fullQuery .= 'ALTER TABLE ' . Util::backquote(htmlspecialchars($table)) . '
  DROP PRIMARY KEY,' . '
   ADD PRIMARY KEY(' . '
     ' - . Util::backquote(htmlspecialchars($sval)) + . Util::backquote(htmlspecialchars($selectedValue)) . ','; - } else { - $full_query .= '
     ' - . Util::backquote(htmlspecialchars($sval)) + } else { + $fullQuery .= '
     ' + . Util::backquote(htmlspecialchars($selectedValue)) . ','; - } - if ($i == $selected_cnt-1) { - $full_query = preg_replace('@,$@', ');
', $full_query); - } - break; + } + if ($i == $selectedCount - 1) { + $fullQuery = preg_replace('@,$@', ');
', $fullQuery); + } + break; - case 'drop_fld': - if ($full_query == '') { - $full_query .= 'ALTER TABLE ' + case 'drop_fld': + if ($fullQuery == '') { + $fullQuery .= 'ALTER TABLE ' . Util::backquote(htmlspecialchars($table)); - } - $full_query .= '
  DROP ' - . Util::backquote(htmlspecialchars($sval)) + } + $fullQuery .= '
  DROP ' + . Util::backquote(htmlspecialchars($selectedValue)) . ','; - if ($i == $selected_cnt - 1) { - $full_query = preg_replace('@,$@', ';
', $full_query); - } - break; + if ($i == $selectedCount - 1) { + $fullQuery = preg_replace('@,$@', ';
', $fullQuery); + } + break; } // end switch $i++; } if ($what == 'drop_tbl') { - if (!empty($full_query)) { - $full_query .= ';
' . "\n"; + if (!empty($fullQuery)) { + $fullQuery .= ';
' . "\n"; } - if (!empty($full_query_views)) { - $full_query .= $full_query_views . ';
' . "\n"; + if (!empty($fullQueryViews)) { + $fullQuery .= $fullQueryViews . ';
' . "\n"; } - unset($full_query_views); + unset($fullQueryViews); } - $full_query_views = isset($full_query_views)? $full_query_views : null; + $fullQueryViews = isset($fullQueryViews) ? $fullQueryViews : null; - return array($full_query, $reload, $full_query_views); + return [$fullQuery, $reload, $fullQueryViews]; } } diff --git a/libraries/mult_submits.inc.php b/libraries/mult_submits.inc.php index 2ba1a72d91..30f662badc 100644 --- a/libraries/mult_submits.inc.php +++ b/libraries/mult_submits.inc.php @@ -246,7 +246,7 @@ if (!empty($submit_mult) && !empty($what)) { list( $result, $rebuild_database_list, $reload_ret, $run_parts, $execute_query_later, $sql_query, $sql_query_views - ) = $multSubmits->buildOrExecuteQueryForMulti( + ) = $multSubmits->buildOrExecuteQuery( $query_type, $selected, $db, $table, $views, isset($primary) ? $primary : null, isset($from_prefix) ? $from_prefix : null, diff --git a/test/classes/MultSubmitsTest.php b/test/classes/MultSubmitsTest.php index 9363700ee0..16636c1428 100644 --- a/test/classes/MultSubmitsTest.php +++ b/test/classes/MultSubmitsTest.php @@ -33,7 +33,7 @@ class MultSubmitsTest extends TestCase $GLOBALS['cfg']['MaxRows'] = 10; $GLOBALS['cfg']['ServerDefault'] = "server"; $GLOBALS['cfg']['RememberSorting'] = true; - $GLOBALS['cfg']['SQP'] = array(); + $GLOBALS['cfg']['SQP'] = []; $GLOBALS['cfg']['MaxCharactersInDisplayedSQL'] = 1000; $GLOBALS['cfg']['ShowSQL'] = true; $GLOBALS['cfg']['TableNavigationLinksMode'] = 'icons'; @@ -43,7 +43,7 @@ class MultSubmitsTest extends TestCase $GLOBALS['cfg']['ActionLinksMode'] = "both"; //_SESSION - $_SESSION['relation'][$GLOBALS['server']] = array( + $_SESSION['relation'][$GLOBALS['server']] = [ 'PMA_VERSION' => PMA_VERSION, 'table_coords' => "table_name", 'displaywork' => 'displaywork', @@ -54,7 +54,7 @@ class MultSubmitsTest extends TestCase 'pdfwork' => 'pdfwork', 'column_info' => 'column_info', 'relation' => 'relation', - ); + ]; //$_SESSION @@ -77,13 +77,13 @@ class MultSubmitsTest extends TestCase * * @return void */ - public function testPMAGetHtmlForReplacePrefixTable() + public function testGetHtmlForReplacePrefixTable() { $action = 'delete_row'; - $_url_params = array('url_query'=>'PMA_original_url_query'); + $urlParams = ['url_query'=>'PMA_original_url_query']; //Call the test function - $html = $this->multSubmits->getHtmlForReplacePrefixTable($action, $_url_params); + $html = $this->multSubmits->getHtmlForReplacePrefixTable($action, $urlParams); //form action $this->assertContains( @@ -92,7 +92,7 @@ class MultSubmitsTest extends TestCase ); //$Url::getHiddenInputs $this->assertContains( - Url::getHiddenInputs($_url_params), + Url::getHiddenInputs($urlParams), $html ); //from_prefix @@ -107,22 +107,22 @@ class MultSubmitsTest extends TestCase * * @return void */ - public function testPMAGetHtmlForAddPrefixTable() + public function testGetHtmlForAddPrefixTable() { $action = 'delete_row'; - $_url_params = array('url_query'=>'PMA_original_url_query'); + $urlParams = ['url_query'=>'PMA_original_url_query']; //Call the test function - $html = $this->multSubmits->getHtmlForAddPrefixTable($action, $_url_params); + $html = $this->multSubmits->getHtmlForAddPrefixTable($action, $urlParams); //form action $this->assertContains( '', $html ); - //$_url_params + //$urlParams $this->assertContains( - Url::getHiddenInputs($_url_params), + Url::getHiddenInputs($urlParams), $html ); //from_prefix @@ -137,16 +137,19 @@ class MultSubmitsTest extends TestCase * * @return void */ - public function testPMAGetHtmlForOtherActions() + public function testGetHtmlForOtherActions() { $what = 'replace_prefix_tbl'; $action = 'delete_row'; - $_url_params = array('url_query'=>'PMA_original_url_query'); - $full_query = 'select column from PMA_table'; + $urlParams = ['url_query'=>'PMA_original_url_query']; + $fullQuery = 'select column from PMA_table'; //Call the test function $html = $this->multSubmits->getHtmlForOtherActions( - $what, $action, $_url_params, $full_query + $what, + $action, + $urlParams, + $fullQuery ); //validate 1: form action @@ -154,9 +157,9 @@ class MultSubmitsTest extends TestCase '', $html ); - //validate 2: $_url_params + //validate 2: $urlParams $this->assertContains( - Url::getHiddenInputs($_url_params), + Url::getHiddenInputs($urlParams), $html ); //validate 3: conform @@ -166,7 +169,7 @@ class MultSubmitsTest extends TestCase ); //validate 4: query $this->assertContains( - '' . $full_query . '', + '' . $fullQuery . '', $html ); //validate 5: button : yes or no @@ -185,80 +188,93 @@ class MultSubmitsTest extends TestCase * * @return void */ - public function testPMAGetUrlParams() + public function testGetUrlParams() { $what = 'row_delete'; $reload = true; $action = 'db_delete_row'; $db = "PMA_db"; $table = "PMA_table"; - $selected = array( + $selected = [ "index1" => "table1" - ); + ]; $views = null; - $original_sql_query = "original_sql_query"; - $original_url_query = "original_url_query"; + $originalSqlQuery = "original_sql_query"; + $originalUrlQuery = "original_url_query"; - $_url_params = $this->multSubmits->getUrlParams( - $what, $reload, $action, $db, $table, $selected, $views, - $original_sql_query, $original_url_query + $urlParams = $this->multSubmits->getUrlParams( + $what, + $reload, + $action, + $db, + $table, + $selected, + $views, + $originalSqlQuery, + $originalUrlQuery ); $this->assertEquals( $what, - $_url_params['query_type'] + $urlParams['query_type'] ); $this->assertEquals( $db, - $_url_params['db'] + $urlParams['db'] ); $this->assertEquals( - array('DELETE FROM `PMA_table` WHERE table1 LIMIT 1;'), - $_url_params['selected'] + ['DELETE FROM `PMA_table` WHERE table1 LIMIT 1;'], + $urlParams['selected'] ); $this->assertEquals( - $original_sql_query, - $_url_params['original_sql_query'] + $originalSqlQuery, + $urlParams['original_sql_query'] ); $this->assertEquals( - $original_url_query, - $_url_params['original_url_query'] + $originalUrlQuery, + $urlParams['original_url_query'] ); } /** - * Test for buildOrExecuteQueryForMulti + * Test for buildOrExecuteQuery * * @return void */ - public function testPMABuildOrExecuteQueryForMulti() + public function testBuildOrExecuteQuery() { - $query_type = 'row_delete'; + $queryType = 'row_delete'; $db = "PMA_db"; $table = "PMA_table"; - $selected = array( + $selected = [ "table1", "table2" - ); + ]; $views = null; $primary = null; - $from_prefix = "from_prefix"; - $to_prefix = "to_prefix"; + $fromPrefix = "from_prefix"; + $toPrefix = "to_prefix"; $_REQUEST['pos'] = 1000; $_SESSION['tmpval']['pos'] = 1000; $_SESSION['tmpval']['max_rows'] = 25; list( - $result, $rebuild_database_list, $reload_ret, - $run_parts, $execute_query_later,, - ) = $this->multSubmits->buildOrExecuteQueryForMulti( - $query_type, $selected, $db, $table, $views, - $primary, $from_prefix, $to_prefix + $result, $rebuildDatabaseList, $reloadRet, + $runParts, $executeQueryLater,, + ) = $this->multSubmits->buildOrExecuteQuery( + $queryType, + $selected, + $db, + $table, + $views, + $primary, + $fromPrefix, + $toPrefix ); - //validate 1: $run_parts + //validate 1: $runParts $this->assertEquals( true, - $run_parts + $runParts ); //validate 2: $result @@ -267,30 +283,36 @@ class MultSubmitsTest extends TestCase $result ); - //validate 3: $rebuild_database_list + //validate 3: $rebuildDatabaseList $this->assertEquals( false, - $rebuild_database_list + $rebuildDatabaseList ); - //validate 4: $reload_ret + //validate 4: $reloadRet $this->assertEquals( null, - $reload_ret + $reloadRet ); - $query_type = 'analyze_tbl'; + $queryType = 'analyze_tbl'; list( - ,,,, $execute_query_later,, - ) = $this->multSubmits->buildOrExecuteQueryForMulti( - $query_type, $selected, $db, $table, $views, - $primary, $from_prefix, $to_prefix + ,,,, $executeQueryLater,, + ) = $this->multSubmits->buildOrExecuteQuery( + $queryType, + $selected, + $db, + $table, + $views, + $primary, + $fromPrefix, + $toPrefix ); - //validate 5: $execute_query_later + //validate 5: $executeQueryLater $this->assertEquals( true, - $execute_query_later + $executeQueryLater ); } @@ -299,26 +321,29 @@ class MultSubmitsTest extends TestCase * * @return void */ - public function testPMAGetQueryFromSelected() + public function testGetQueryFromSelected() { $what = "drop_tbl"; $table = "PMA_table"; - $selected = array( + $selected = [ "table1", "table2" - ); - $views = array( + ]; + $views = [ "table1", "table2" - ); + ]; - list($full_query, $reload, $full_query_views) + list($fullQuery, $reload, $fullQueryViews) = $this->multSubmits->getQueryFromSelected( - $what, $table, $selected, $views + $what, + $table, + $selected, + $views ); - //validate 1: $full_query + //validate 1: $fullQuery $this->assertContains( "DROP VIEW `table1`, `table2`", - $full_query + $fullQuery ); //validate 2: $reload @@ -327,23 +352,26 @@ class MultSubmitsTest extends TestCase $reload ); - //validate 3: $full_query_views + //validate 3: $fullQueryViews $this->assertEquals( null, - $full_query_views + $fullQueryViews ); $what = "drop_db"; - list($full_query, $reload, $full_query_views) + list($fullQuery, $reload, $fullQueryViews) = $this->multSubmits->getQueryFromSelected( - $what, $table, $selected, $views + $what, + $table, + $selected, + $views ); - //validate 1: $full_query + //validate 1: $fullQuery $this->assertContains( "DROP DATABASE `table1`;
DROP DATABASE `table2`;", - $full_query + $fullQuery ); //validate 2: $reload