DepersonalizePlugin.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\PageCache\Model\Layout;
  7. use Magento\PageCache\Model\DepersonalizeChecker;
  8. /**
  9. * Class DepersonalizePlugin
  10. */
  11. class DepersonalizePlugin
  12. {
  13. /**
  14. * @var DepersonalizeChecker
  15. */
  16. protected $depersonalizeChecker;
  17. /**
  18. * @var \Magento\Framework\Event\Manager
  19. */
  20. protected $eventManager;
  21. /**
  22. * @var \Magento\Framework\Message\Session
  23. */
  24. protected $messageSession;
  25. /**
  26. * @param DepersonalizeChecker $depersonalizeChecker
  27. * @param \Magento\Framework\Event\Manager $eventManager
  28. * @param \Magento\Framework\Message\Session $messageSession
  29. */
  30. public function __construct(
  31. DepersonalizeChecker $depersonalizeChecker,
  32. \Magento\Framework\Event\Manager $eventManager,
  33. \Magento\Framework\Message\Session $messageSession
  34. ) {
  35. $this->depersonalizeChecker = $depersonalizeChecker;
  36. $this->eventManager = $eventManager;
  37. $this->messageSession = $messageSession;
  38. }
  39. /**
  40. * After generate Xml
  41. *
  42. * @param \Magento\Framework\View\LayoutInterface $subject
  43. * @param \Magento\Framework\View\LayoutInterface $result
  44. * @return \Magento\Framework\View\LayoutInterface
  45. */
  46. public function afterGenerateXml(\Magento\Framework\View\LayoutInterface $subject, $result)
  47. {
  48. if ($this->depersonalizeChecker->checkIfDepersonalize($subject)) {
  49. $this->eventManager->dispatch('depersonalize_clear_session');
  50. session_write_close();
  51. $this->messageSession->clearStorage();
  52. }
  53. return $result;
  54. }
  55. }