Design.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\App\Action\Plugin;
  7. use Magento\Framework\Message\MessageInterface;
  8. class Design
  9. {
  10. /**
  11. * @var \Magento\Framework\View\DesignLoader
  12. */
  13. protected $_designLoader;
  14. /**
  15. * @var \Magento\Framework\Message\ManagerInterface
  16. */
  17. protected $messageManager;
  18. /**
  19. * @param \Magento\Framework\View\DesignLoader $designLoader
  20. * @param \Magento\Framework\Message\ManagerInterface $messageManager
  21. */
  22. public function __construct(
  23. \Magento\Framework\View\DesignLoader $designLoader,
  24. \Magento\Framework\Message\ManagerInterface $messageManager
  25. ) {
  26. $this->_designLoader = $designLoader;
  27. $this->messageManager = $messageManager;
  28. }
  29. /**
  30. * Initialize design
  31. *
  32. * @param \Magento\Framework\App\ActionInterface $subject
  33. * @param \Magento\Framework\App\RequestInterface $request
  34. *
  35. * @return void
  36. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  37. */
  38. public function beforeDispatch(
  39. \Magento\Framework\App\ActionInterface $subject,
  40. \Magento\Framework\App\RequestInterface $request
  41. ) {
  42. try {
  43. $this->_designLoader->load();
  44. } catch (\Magento\Framework\Exception\LocalizedException $e) {
  45. if ($e->getPrevious() instanceof \Magento\Framework\Config\Dom\ValidationException) {
  46. /** @var MessageInterface $message */
  47. $message = $this->messageManager
  48. ->createMessage(MessageInterface::TYPE_ERROR)
  49. ->setText($e->getMessage());
  50. $this->messageManager->addUniqueMessages([$message]);
  51. }
  52. }
  53. }
  54. }