Magento.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\TestFramework\Event;
  7. use Magento\Framework\Event\ObserverInterface;
  8. /**
  9. * Observer of Magento events triggered using \Magento\TestFramework\EventManager::dispatch()
  10. */
  11. class Magento implements ObserverInterface
  12. {
  13. /**
  14. * Used when Magento framework instantiates the class on its own and passes nothing to the constructor
  15. *
  16. * @var \Magento\TestFramework\EventManager
  17. */
  18. protected static $_defaultEventManager;
  19. /**
  20. * @var \Magento\TestFramework\EventManager
  21. */
  22. protected $_eventManager;
  23. /**
  24. * Assign default event manager instance
  25. *
  26. * @param \Magento\TestFramework\EventManager $eventManager
  27. */
  28. public static function setDefaultEventManager(\Magento\TestFramework\EventManager $eventManager = null)
  29. {
  30. self::$_defaultEventManager = $eventManager;
  31. }
  32. /**
  33. * Constructor
  34. *
  35. * @param \Magento\TestFramework\EventManager $eventManager
  36. * @throws \Magento\Framework\Exception\LocalizedException
  37. */
  38. public function __construct($eventManager = null)
  39. {
  40. $this->_eventManager = $eventManager ?: self::$_defaultEventManager;
  41. if (!$this->_eventManager instanceof \Magento\TestFramework\EventManager) {
  42. throw new \Magento\Framework\Exception\LocalizedException(
  43. __('Instance of the "Magento\TestFramework\EventManager" is expected.')
  44. );
  45. }
  46. }
  47. /**
  48. * Handler for 'core_app_init_current_store_after' event, that converts it into 'initStoreAfter'
  49. * @param \Magento\Framework\Event\Observer $observer
  50. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  51. */
  52. public function execute(\Magento\Framework\Event\Observer $observer)
  53. {
  54. $this->_eventManager->fireEvent('initStoreAfter');
  55. }
  56. }