Skip to content

Commit

Permalink
Create SqlAutoCompleteController
Browse files Browse the repository at this point in the history
Moves database sql autocomplete entry point logic to the
Database\SqlAutoCompleteController and removes the entry point file.

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
  • Loading branch information
MauricioFauth committed Dec 11, 2019
1 parent fa6fc40 commit 301835e
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 43 deletions.
@@ -0,0 +1,38 @@
<?php
/**
* @package PhpMyAdmin\Controllers\Database
*/
declare(strict_types=1);

namespace PhpMyAdmin\Controllers\Database;

/**
* Table/Column autocomplete in SQL editors.
* @package PhpMyAdmin\Controllers\Database
*/
class SqlAutoCompleteController extends AbstractController
{
/**
* @return array JSON
*/
public function index(): array
{
global $cfg, $db, $sql_autocomplete;

$sql_autocomplete = true;
if ($cfg['EnableAutocompleteForTablesAndColumns']) {
$db = isset($_POST['db']) ? $_POST['db'] : $db;
$sql_autocomplete = [];
if ($db) {
$tableNames = $this->dbi->getTables($db);
foreach ($tableNames as $tableName) {
$sql_autocomplete[$tableName] = $this->dbi->getColumns(
$db,
$tableName
);
}
}
}
return ['tables' => json_encode($sql_autocomplete)];
}
}
40 changes: 0 additions & 40 deletions libraries/entry_points/database/sql/autocomplete.php

This file was deleted.

9 changes: 6 additions & 3 deletions libraries/routes.php
Expand Up @@ -18,6 +18,7 @@
use PhpMyAdmin\Controllers\Database\QueryByExampleController;
use PhpMyAdmin\Controllers\Database\RoutinesController;
use PhpMyAdmin\Controllers\Database\SearchController;
use PhpMyAdmin\Controllers\Database\SqlAutoCompleteController;
use PhpMyAdmin\Controllers\Database\StructureController;
use PhpMyAdmin\Controllers\Database\TriggersController;
use PhpMyAdmin\Controllers\ErrorReportController;
Expand Down Expand Up @@ -197,12 +198,14 @@
$controller = $containerBuilder->get(SearchController::class);
$controller->index();
});
$routes->addGroup('/sql', function (RouteCollector $routes) {
$routes->addGroup('/sql', function (RouteCollector $routes) use ($containerBuilder, $response) {
$routes->addRoute(['GET', 'POST'], '', function () {
require_once ROOT_PATH . 'libraries/entry_points/database/sql.php';
});
$routes->post('/autocomplete', function () {
require_once ROOT_PATH . 'libraries/entry_points/database/sql/autocomplete.php';
$routes->post('/autocomplete', function () use ($containerBuilder, $response) {
/** @var SqlAutoCompleteController $controller */
$controller = $containerBuilder->get(SqlAutoCompleteController::class);
$response->addJSON($controller->index());
});
$routes->post('/format', function () {
require_once ROOT_PATH . 'libraries/entry_points/database/sql/format.php';
Expand Down
8 changes: 8 additions & 0 deletions services_controllers.yml
Expand Up @@ -123,6 +123,14 @@ services:
template: '@template'
db: '%db%'

PhpMyAdmin\Controllers\Database\SqlAutoCompleteController:
class: 'PhpMyAdmin\Controllers\Database\SqlAutoCompleteController'
arguments:
response: '@response'
dbi: '@dbi'
template: '@template'
db: '%db%'

PhpMyAdmin\Controllers\Database\SqlController:
class: 'PhpMyAdmin\Controllers\Database\SqlController'
arguments:
Expand Down

0 comments on commit 301835e

Please sign in to comment.