ServersController.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. declare(strict_types=1);
  3. namespace PhpMyAdmin\Controllers\Setup;
  4. use PhpMyAdmin\Config\Forms\Setup\ServersForm;
  5. use PhpMyAdmin\Core;
  6. use PhpMyAdmin\Setup\FormProcessing;
  7. use function ob_get_clean;
  8. use function ob_start;
  9. class ServersController extends AbstractController
  10. {
  11. /**
  12. * @param array $params Request parameters
  13. *
  14. * @return string HTML
  15. */
  16. public function index(array $params): string
  17. {
  18. $pages = $this->getPages();
  19. $id = Core::isValid($params['id'], 'numeric') ? (int) $params['id'] : null;
  20. $hasServer = ! empty($id) && $this->config->get('Servers/' . $id) !== null;
  21. if (! $hasServer && ($params['mode'] !== 'revert' && $params['mode'] !== 'edit')) {
  22. $id = 0;
  23. }
  24. ob_start();
  25. FormProcessing::process(new ServersForm($this->config, $id));
  26. $page = ob_get_clean();
  27. return $this->template->render('setup/servers/index', [
  28. 'formset' => $params['formset'] ?? '',
  29. 'pages' => $pages,
  30. 'has_server' => $hasServer,
  31. 'mode' => $params['mode'],
  32. 'server_id' => $id,
  33. 'server_dsn' => $this->config->getServerDSN($id),
  34. 'page' => $page,
  35. ]);
  36. }
  37. /**
  38. * @param array $params Request parameters
  39. */
  40. public function destroy(array $params): void
  41. {
  42. $id = Core::isValid($params['id'], 'numeric') ? (int) $params['id'] : null;
  43. $hasServer = ! empty($id) && $this->config->get('Servers/' . $id) !== null;
  44. if (! $hasServer) {
  45. return;
  46. }
  47. $this->config->removeServer($id);
  48. }
  49. }