phpmyadmin/libraries/classes/Database/MultiTableQuery.php
Maurício Meneghini Fauth a76fb00ce6 Refactor Database/MultiTableQuery to use DI
Signed-off-by: Maurício Meneghini Fauth <mauriciofauth@gmail.com>
2017-11-13 17:20:27 -02:00

99 lines
2.0 KiB
PHP

<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Handles DB Multi-table query
*
* @package PhpMyAdmin
*/
namespace PhpMyAdmin\Database;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Template;
/**
* Class to handle database Multi-table querying
*
* @package PhpMyAdmin
*/
class MultiTableQuery
{
/**
* DatabaseInterface instance
*
* @access private
* @var DatabaseInterface
*/
private $dbi;
/**
* Database name
*
* @access private
* @var string
*/
private $db;
/**
* Default number of columns
*
* @access private
* @var integer
*/
private $defaultNoOfColumns;
/**
* 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()
{
return Template::get('database/multi_table_query/columns')->render([
'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,
'columns' => $this->getColumnsHTML(),
]);
}
}