MenuBuilder.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Backend\Model\Setup;
  7. use Magento\Backend\Model\Menu;
  8. use Magento\Backend\Model\Menu\Builder;
  9. use Magento\Framework\App\DocRootLocator;
  10. /**
  11. * Plugin class to remove web setup wizard from menu if application root is pub/ and no setup url variable is specified.
  12. * @api
  13. * @since 100.1.0
  14. */
  15. class MenuBuilder
  16. {
  17. /**
  18. * @var DocRootLocator
  19. * @since 100.1.0
  20. */
  21. protected $docRootLocator;
  22. /**
  23. * MenuBuilder constructor.
  24. *
  25. * @param DocRootLocator $docRootLocator
  26. */
  27. public function __construct(DocRootLocator $docRootLocator)
  28. {
  29. $this->docRootLocator = $docRootLocator;
  30. }
  31. /**
  32. * Removes 'Web Setup Wizard' from the menu if doc root is pub and no setup url variable is specified.
  33. *
  34. * @param Builder $subject
  35. * @param Menu $menu
  36. * @return Menu
  37. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  38. * @since 100.1.0
  39. */
  40. public function afterGetResult(Builder $subject, Menu $menu)
  41. {
  42. if ($this->docRootLocator->isPub()) {
  43. $menu->remove('Magento_Backend::setup_wizard');
  44. }
  45. return $menu;
  46. }
  47. }