Refactor Database/MultiTableQuery to use DI
Signed-off-by: Maurício Meneghini Fauth <mauriciofauth@gmail.com>
This commit is contained in:
parent
8ec6d433a0
commit
a76fb00ce6
@ -53,6 +53,6 @@ $scripts = $header->getScripts();
|
||||
$scripts->addFile('vendor/jquery/jquery.md5.js');
|
||||
$scripts->addFile('db_multi_table_query.js');
|
||||
|
||||
$QueryInstance = new MultiTableQuery($db);
|
||||
$QueryInstance = new MultiTableQuery($GLOBALS['dbi'], $db);
|
||||
|
||||
$response->addHTML($QueryInstance->getFormHTML());
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
*/
|
||||
namespace PhpMyAdmin\Database;
|
||||
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
/**
|
||||
@ -16,43 +17,81 @@ use PhpMyAdmin\Template;
|
||||
*/
|
||||
class MultiTableQuery
|
||||
{
|
||||
/**
|
||||
* DatabaseInterface instance
|
||||
*
|
||||
* @access private
|
||||
* @var DatabaseInterface
|
||||
*/
|
||||
private $dbi;
|
||||
|
||||
/**
|
||||
* Database name
|
||||
*
|
||||
* @access private
|
||||
* @var string
|
||||
*/
|
||||
private $_db;
|
||||
private $db;
|
||||
|
||||
/**
|
||||
* Default no. of columns
|
||||
* Default number of columns
|
||||
*
|
||||
* @access private
|
||||
* @var integer
|
||||
*/
|
||||
private $_default_no_of_columns;
|
||||
private $defaultNoOfColumns;
|
||||
|
||||
public function __construct($db_name)
|
||||
{
|
||||
$this->_db = $db_name;
|
||||
$this->_default_no_of_columns = 3;
|
||||
/**
|
||||
* Table names
|
||||
*
|
||||
* @access private
|
||||
* @var array
|
||||
*/
|
||||
private $tables;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param DatabaseInterface $dbi DatabaseInterface instance
|
||||
* @param string $dbName Database name
|
||||
* @param integer $defaultNoOfColumns Default number of columns
|
||||
*/
|
||||
public function __construct(
|
||||
DatabaseInterface $dbi,
|
||||
$dbName,
|
||||
$defaultNoOfColumns = 3
|
||||
) {
|
||||
$this->dbi = $dbi;
|
||||
$this->db = $dbName;
|
||||
$this->defaultNoOfColumns = $defaultNoOfColumns;
|
||||
|
||||
$this->tables = $this->dbi->getTables($this->db);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get HTML for columns
|
||||
*
|
||||
* @return string HTML with columns
|
||||
*/
|
||||
private function getColumnsHTML()
|
||||
{
|
||||
$tables = $GLOBALS['dbi']->getTables($this->_db);
|
||||
return Template::get('database/multi_table_query/columns')->render([
|
||||
'tables' => $tables,
|
||||
'dbi' => $GLOBALS['dbi'],
|
||||
'db' => $this->_db,
|
||||
'default_no_of_columns' => $this->_default_no_of_columns,
|
||||
'tables' => $this->tables,
|
||||
'dbi' => $this->dbi,
|
||||
'db' => $this->db,
|
||||
'default_no_of_columns' => $this->defaultNoOfColumns,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Multi Table Query page HTML
|
||||
*
|
||||
* @return string Multi Table Query page HTML
|
||||
*/
|
||||
public function getFormHTML()
|
||||
{
|
||||
return Template::get('database/multi_table_query/form')->render([
|
||||
'db' => $this->_db,
|
||||
'db' => $this->db,
|
||||
'columns' => $this->getColumnsHTML(),
|
||||
]);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user