ApplyPersistentDataObserver.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\Persistent\Observer;
  8. use Magento\Framework\Event\ObserverInterface;
  9. class ApplyPersistentDataObserver implements ObserverInterface
  10. {
  11. /**
  12. * Customer session
  13. *
  14. * @var \Magento\Customer\Model\Session
  15. */
  16. protected $_customerSession;
  17. /**
  18. * Persistent config factory
  19. *
  20. * @var \Magento\Persistent\Model\Persistent\ConfigFactory
  21. */
  22. protected $_persistentConfigFactory;
  23. /**
  24. * Persistent session
  25. *
  26. * @var \Magento\Persistent\Helper\Session
  27. */
  28. protected $_persistentSession = null;
  29. /**
  30. * Persistent data
  31. *
  32. * @var \Magento\Persistent\Helper\Data
  33. */
  34. protected $_persistentData = null;
  35. /**
  36. * @param \Magento\Persistent\Helper\Session $persistentSession
  37. * @param \Magento\Persistent\Helper\Data $persistentData
  38. * @param \Magento\Customer\Model\Session $customerSession
  39. * @param \Magento\Persistent\Model\Persistent\ConfigFactory $persistentConfigFactory
  40. */
  41. public function __construct(
  42. \Magento\Persistent\Helper\Session $persistentSession,
  43. \Magento\Persistent\Helper\Data $persistentData,
  44. \Magento\Customer\Model\Session $customerSession,
  45. \Magento\Persistent\Model\Persistent\ConfigFactory $persistentConfigFactory
  46. ) {
  47. $this->_persistentSession = $persistentSession;
  48. $this->_persistentData = $persistentData;
  49. $this->_customerSession = $customerSession;
  50. $this->_persistentConfigFactory = $persistentConfigFactory;
  51. }
  52. /**
  53. * Apply persistent data
  54. *
  55. * @param \Magento\Framework\Event\Observer $observer
  56. * @return $this
  57. */
  58. public function execute(\Magento\Framework\Event\Observer $observer)
  59. {
  60. if (!$this->_persistentData->canProcess($observer)
  61. || !$this->_persistentSession->isPersistent()
  62. || $this->_customerSession->isLoggedIn()
  63. ) {
  64. return $this;
  65. }
  66. /** @var \Magento\Persistent\Model\Persistent\Config $persistentConfig */
  67. $persistentConfig = $this->_persistentConfigFactory->create();
  68. $persistentConfig->setConfigFilePath($this->_persistentData->getPersistentConfigFilePath())->fire();
  69. return $this;
  70. }
  71. }