Merge pull request #15551 from Tithugues/refactor-duplicated-code

Refactor duplicated code to create a bookmark
This commit is contained in:
Maurício Meneghini Fauth 2019-11-01 20:50:25 -03:00 committed by GitHub
commit 20eab6257d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -8,10 +8,6 @@ declare(strict_types=1);
namespace PhpMyAdmin;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Relation;
use PhpMyAdmin\Util;
/**
* Handles bookmarking SQL queries
*
@ -276,6 +272,27 @@ class Bookmark
return $bookmark;
}
/**
* @param DatabaseInterface $dbi DatabaseInterface object
* @param string $user Current user
* @param array $row Resource used to build the bookmark
*
* @return Bookmark
*/
protected static function createFromRow(
DatabaseInterface $dbi,
string $user,
$row
): Bookmark {
$bookmark = new Bookmark($dbi, $user);
$bookmark->_id = $row['id'];
$bookmark->_database = $row['dbase'];
$bookmark->_user = $row['user'];
$bookmark->_label = $row['label'];
$bookmark->_query = $row['query'];
return $bookmark;
}
/**
* Gets the list of bookmarks defined for the current database
*
@ -317,13 +334,7 @@ class Bookmark
if (! empty($result)) {
$bookmarks = [];
foreach ($result as $row) {
$bookmark = new Bookmark($dbi, $user);
$bookmark->_id = $row['id'];
$bookmark->_database = $row['dbase'];
$bookmark->_user = $row['user'];
$bookmark->_label = $row['label'];
$bookmark->_query = $row['query'];
$bookmarks[] = $bookmark;
$bookmarks[] = self::createFromRow($dbi, $user, $row);
}
return $bookmarks;
@ -379,13 +390,7 @@ class Bookmark
$result = $dbi->fetchSingleRow($query, 'ASSOC', DatabaseInterface::CONNECT_CONTROL);
if (! empty($result)) {
$bookmark = new Bookmark($dbi, $user);
$bookmark->_id = $result['id'];
$bookmark->_database = $result['dbase'];
$bookmark->_user = $result['user'];
$bookmark->_label = $result['label'];
$bookmark->_query = $result['query'];
return $bookmark;
return self::createFromRow($dbi, $user, $result);
}
return null;