| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | <?phpnamespace 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();    }}
 |