AdvisorController.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4. * Holds the PhpMyAdmin\Controllers\Server\Status\AdvisorController
  5. *
  6. * @package PhpMyAdmin\Controllers
  7. */
  8. declare(strict_types=1);
  9. namespace PhpMyAdmin\Controllers\Server\Status;
  10. use PhpMyAdmin\Advisor;
  11. use PhpMyAdmin\DatabaseInterface;
  12. use PhpMyAdmin\Response;
  13. use PhpMyAdmin\Server\Status\Data;
  14. use PhpMyAdmin\Template;
  15. use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
  16. /**
  17. * Displays the advisor feature
  18. *
  19. * @package PhpMyAdmin\Controllers
  20. */
  21. class AdvisorController extends AbstractController
  22. {
  23. /**
  24. * @var Advisor
  25. */
  26. private $advisor;
  27. /**
  28. * AdvisorController constructor.
  29. *
  30. * @param Response $response Response object
  31. * @param DatabaseInterface $dbi DatabaseInterface object
  32. * @param Template $template Template object
  33. * @param Data $data Data object
  34. * @param Advisor $advisor Advisor instance
  35. */
  36. public function __construct($response, $dbi, Template $template, $data, Advisor $advisor)
  37. {
  38. parent::__construct($response, $dbi, $template, $data);
  39. $this->advisor = $advisor;
  40. }
  41. /**
  42. * @return string
  43. */
  44. public function index(): string
  45. {
  46. $data = '';
  47. if ($this->data->dataLoaded) {
  48. $data = json_encode($this->advisor->run());
  49. }
  50. return $this->template->render('server/status/advisor/index', [
  51. 'data' => $data,
  52. ]);
  53. }
  54. }