1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- namespace Yansongda\Pay;
- use Exception;
- use Symfony\Component\EventDispatcher\EventDispatcher;
- use Symfony\Component\EventDispatcher\EventSubscriberInterface;
- use Symfony\Contracts\EventDispatcher\Event;
- /**
- * @author yansongda <me@yansongda.cn>
- *
- * @method static Event dispatch(Event $event) Dispatches an event to all registered listeners
- * @method static array getListeners($eventName = null) Gets the listeners of a specific event or all listeners sorted by descending priority.
- * @method static int|void getListenerPriority($eventName, $listener) Gets the listener priority for a specific event.
- * @method static bool hasListeners($eventName = null) Checks whether an event has any registered listeners.
- * @method static void addListener($eventName, $listener, $priority = 0) Adds an event listener that listens on the specified events.
- * @method static removeListener($eventName, $listener) Removes an event listener from the specified events.
- * @method static void addSubscriber(EventSubscriberInterface $subscriber) Adds an event subscriber.
- * @method static void removeSubscriber(EventSubscriberInterface $subscriber)
- */
- class Events
- {
- /**
- * dispatcher.
- *
- * @var EventDispatcher
- */
- protected static $dispatcher;
- /**
- * Forward call.
- *
- * @author yansongda <me@yansongda.cn>
- *
- * @param string $method
- * @param array $args
- *
- * @throws Exception
- *
- * @return mixed
- */
- public static function __callStatic($method, $args)
- {
- return call_user_func_array([self::getDispatcher(), $method], $args);
- }
- /**
- * Forward call.
- *
- * @author yansongda <me@yansongda.cn>
- *
- * @param string $method
- * @param array $args
- *
- * @throws Exception
- *
- * @return mixed
- */
- public function __call($method, $args)
- {
- return call_user_func_array([self::getDispatcher(), $method], $args);
- }
- /**
- * setDispatcher.
- *
- * @author yansongda <me@yansongda.cn>
- */
- public static function setDispatcher(EventDispatcher $dispatcher)
- {
- self::$dispatcher = $dispatcher;
- }
- /**
- * getDispatcher.
- *
- * @author yansongda <me@yansongda.cn>
- */
- public static function getDispatcher(): EventDispatcher
- {
- if (self::$dispatcher) {
- return self::$dispatcher;
- }
- return self::$dispatcher = self::createDispatcher();
- }
- /**
- * createDispatcher.
- *
- * @author yansongda <me@yansongda.cn>
- */
- public static function createDispatcher(): EventDispatcher
- {
- return new EventDispatcher();
- }
- }
|