Website.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Theme\Model\Indexer\Design\Config\Plugin;
  7. use Magento\Framework\Indexer\IndexerRegistry;
  8. use Magento\Store\Model\Website as StoreWebsite;
  9. use Magento\Theme\Model\Data\Design\Config;
  10. class Website
  11. {
  12. /**
  13. * @var IndexerRegistry
  14. */
  15. protected $indexerRegistry;
  16. /**
  17. * @param IndexerRegistry $indexerRegistry
  18. */
  19. public function __construct(
  20. IndexerRegistry $indexerRegistry
  21. ) {
  22. $this->indexerRegistry = $indexerRegistry;
  23. }
  24. /**
  25. * Invalidate design config grid indexer on website creation
  26. *
  27. * @param StoreWebsite $subject
  28. * @param \Closure $proceed
  29. * @return StoreWebsite
  30. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  31. */
  32. public function aroundSave(StoreWebsite $subject, \Closure $proceed)
  33. {
  34. $isObjectNew = $subject->getId() == 0;
  35. $result = $proceed();
  36. if ($isObjectNew) {
  37. $this->indexerRegistry->get(Config::DESIGN_CONFIG_GRID_INDEXER_ID)->invalidate();
  38. }
  39. return $result;
  40. }
  41. /**
  42. * Invalidate design config grid indexer on website removal
  43. *
  44. * @param StoreWebsite $subject
  45. * @param StoreWebsite $result
  46. * @return StoreWebsite
  47. *
  48. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  49. */
  50. public function afterDelete(StoreWebsite $subject, $result)
  51. {
  52. $this->indexerRegistry->get(Config::DESIGN_CONFIG_GRID_INDEXER_ID)->invalidate();
  53. return $result;
  54. }
  55. }