ReplicationController.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4. * Server replications
  5. * @package PhpMyAdmin\Controllers\Server
  6. */
  7. declare(strict_types=1);
  8. namespace PhpMyAdmin\Controllers\Server;
  9. use PhpMyAdmin\Controllers\AbstractController;
  10. use PhpMyAdmin\ReplicationGui;
  11. use Throwable;
  12. use Twig_Error_Loader;
  13. use Twig_Error_Runtime;
  14. use Twig_Error_Syntax;
  15. /**
  16. * Server replications
  17. * @package PhpMyAdmin\Controllers\Server
  18. */
  19. class ReplicationController extends AbstractController
  20. {
  21. /**
  22. * @param array $params Request parameters
  23. * @param ReplicationGui $replicationGui ReplicationGui instance
  24. *
  25. * @return string HTML
  26. * @throws Throwable
  27. * @throws Twig_Error_Loader
  28. * @throws Twig_Error_Runtime
  29. * @throws Twig_Error_Syntax
  30. */
  31. public function index(array $params, ReplicationGui $replicationGui): string
  32. {
  33. global $replication_info, $server_slave_replication, $url_params;
  34. $errorMessages = $replicationGui->getHtmlForErrorMessage();
  35. if ($replication_info['master']['status']) {
  36. $masterReplicationHtml = $replicationGui->getHtmlForMasterReplication();
  37. }
  38. if (isset($params['mr_configure'])) {
  39. $masterConfigurationHtml = $replicationGui->getHtmlForMasterConfiguration();
  40. } else {
  41. if (! isset($params['repl_clear_scr'])) {
  42. $slaveConfigurationHtml = $replicationGui->getHtmlForSlaveConfiguration(
  43. $replication_info['slave']['status'],
  44. $server_slave_replication
  45. );
  46. }
  47. if (isset($params['sl_configure'])) {
  48. $changeMasterHtml = $replicationGui->getHtmlForReplicationChangeMaster('slave_changemaster');
  49. }
  50. }
  51. return $this->template->render('server/replication/index', [
  52. 'url_params' => $url_params,
  53. 'is_super_user' => $this->dbi->isSuperuser(),
  54. 'error_messages' => $errorMessages,
  55. 'is_master' => $replication_info['master']['status'],
  56. 'master_configure' => $params['mr_configure'],
  57. 'slave_configure' => $params['sl_configure'],
  58. 'clear_screen' => $params['repl_clear_scr'],
  59. 'master_replication_html' => $masterReplicationHtml ?? '',
  60. 'master_configuration_html' => $masterConfigurationHtml ?? '',
  61. 'slave_configuration_html' => $slaveConfigurationHtml ?? '',
  62. 'change_master_html' => $changeMasterHtml ?? '',
  63. ]);
  64. }
  65. }