EventManager.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\EntityManager;
  7. use Magento\Framework\Event\ManagerInterface;
  8. /**
  9. * Class EventManager
  10. */
  11. class EventManager
  12. {
  13. /**
  14. * @var ManagerInterface
  15. */
  16. private $eventManager;
  17. /**
  18. * EventManager constructor.
  19. * @param ManagerInterface $eventManager
  20. */
  21. public function __construct(
  22. ManagerInterface $eventManager
  23. ) {
  24. $this->eventManager = $eventManager;
  25. }
  26. /**
  27. * Get entity prefix for event
  28. *
  29. * @param string $entityType
  30. * @return string
  31. */
  32. private function resolveEntityPrefix($entityType)
  33. {
  34. return strtolower(str_replace("\\", "_", $entityType));
  35. }
  36. /**
  37. * @param string $entityType
  38. * @param string $eventSuffix
  39. * @param array $data
  40. * @return void
  41. */
  42. public function dispatchEntityEvent($entityType, $eventSuffix, array $data = [])
  43. {
  44. $this->eventManager->dispatch(
  45. $this->resolveEntityPrefix($entityType) . '_' . $eventSuffix,
  46. $data
  47. );
  48. }
  49. /**
  50. * @param string $eventName
  51. * @param array $data
  52. * @return void
  53. */
  54. public function dispatch($eventName, array $data = [])
  55. {
  56. $this->eventManager->dispatch($eventName, $data);
  57. }
  58. }