custom/plugins/CrswCleverReachOfficial/src/Core/Infrastructure/Utility/Events/EventBus.php line 56

Open in your IDE?
  1. <?php
  2. namespace Crsw\CleverReachOfficial\Core\Infrastructure\Utility\Events;
  3. /**
  4.  * Class EventBus
  5.  * @package Crsw\CleverReachOfficial\Core\Infrastructure\Utility\Events
  6.  */
  7. class EventBus extends EventEmitter
  8. {
  9.     /**
  10.      * Fully qualified name of this class.
  11.      */
  12.     const CLASS_NAME __CLASS__;
  13.     /**
  14.      * Singleton instance of this class.
  15.      *
  16.      * @var EventBus
  17.      */
  18.     protected static $instance;
  19.     /**
  20.      * EventBus constructor.
  21.      */
  22.     protected function __construct()
  23.     {
  24.     }
  25.     /**
  26.      * Returns singleton instance of EventBus.
  27.      *
  28.      * @return EventBus Instance of EventBus class.
  29.      */
  30.     public static function getInstance()
  31.     {
  32.         if (static::$instance === null) {
  33.             static::$instance = new static();
  34.         }
  35.         return static::$instance;
  36.     }
  37.     /**
  38.      * Resets singleton instance. Required for proper tests.
  39.      */
  40.     public static function resetInstance()
  41.     {
  42.         static::$instance null;
  43.     }
  44.     /**
  45.      * Fires requested event by calling all its registered handlers.
  46.      *
  47.      * @param \Crsw\CleverReachOfficial\Core\Infrastructure\Utility\Events\Event $event Event to fire.
  48.      */
  49.     public function fire(Event $event)
  50.     {
  51.         // just changed access type from protected to public
  52.         parent::fire($event);
  53.     }
  54. }