]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add psalm types for the event dispatcher
authorChristoph Wurst <christoph@winzerhof-wurst.at>
Thu, 15 Oct 2020 14:23:26 +0000 (16:23 +0200)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Thu, 15 Oct 2020 22:34:18 +0000 (22:34 +0000)
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
lib/public/AppFramework/Bootstrap/IRegistrationContext.php
lib/public/EventDispatcher/IEventDispatcher.php
lib/public/EventDispatcher/IEventListener.php

index c75b983120c56edc1a108d37d4475ee419dae2fc..7d4692f3fcc4ddc67ee82382bbb0b7e9aca1631f 100644 (file)
@@ -113,10 +113,11 @@ interface IRegistrationContext {
         *
         * This is equivalent to calling IEventDispatcher::addServiceListener
         *
+        * @template T of \OCP\EventDispatcher\Event
         * @param string $event preferably the fully-qualified class name of the Event sub class to listen for
-        * @psalm-param string|class-string<\OCP\EventDispatcher\Event> $event preferably the fully-qualified class name of the Event sub class to listen for
+        * @psalm-param string|class-string<T> $event preferably the fully-qualified class name of the Event sub class to listen for
         * @param string $listener fully qualified class name (or ::class notation) of a \OCP\EventDispatcher\IEventListener that can be built by the DI container
-        * @psalm-param class-string<\OCP\EventDispatcher\IEventListener> $listener fully qualified class name that can be built by the DI container
+        * @psalm-param class-string<\OCP\EventDispatcher\IEventListener<T>> $listener fully qualified class name that can be built by the DI container
         * @param int $priority
         *
         * @see IEventDispatcher::addServiceListener()
index 997834ad7b5c56963a78996368783a9b309752b5..471447e4b9f819b1d5ffa5613e41684caf5621f5 100644 (file)
@@ -35,7 +35,9 @@ namespace OCP\EventDispatcher;
 interface IEventDispatcher {
 
        /**
+        * @template T of \OCP\EventDispatcher\Event
         * @param string $eventName preferably the fully-qualified class name of the Event sub class
+        * @psalm-param string|class-string<T> $eventName preferably the fully-qualified class name of the Event sub class
         * @param callable $listener the object that is invoked when a matching event is dispatched
         * @param int $priority
         *
@@ -44,7 +46,9 @@ interface IEventDispatcher {
        public function addListener(string $eventName, callable $listener, int $priority = 0): void;
 
        /**
+        * @template T of \OCP\EventDispatcher\Event
         * @param string $eventName preferably the fully-qualified class name of the Event sub class
+        * @psalm-param string|class-string<T> $eventName preferably the fully-qualified class name of the Event sub class
         * @param callable $listener the object that is invoked when a matching event is dispatched
         *
         * @since 19.0.0
@@ -52,8 +56,11 @@ interface IEventDispatcher {
        public function removeListener(string $eventName, callable $listener): void;
 
        /**
+        * @template T of \OCP\EventDispatcher\Event
         * @param string $eventName preferably the fully-qualified class name of the Event sub class to listen for
+        * @psalm-param string|class-string<T> $eventName preferably the fully-qualified class name of the Event sub class to listen for
         * @param string $className fully qualified class name (or ::class notation) of a \OCP\EventDispatcher\IEventListener that can be built by the DI container
+        * @psalm-param class-string<\OCP\EventDispatcher\IEventListener<T>> $className fully qualified class name that can be built by the DI container
         * @param int $priority
         *
         * @since 17.0.0
@@ -61,8 +68,11 @@ interface IEventDispatcher {
        public function addServiceListener(string $eventName, string $className, int $priority = 0): void;
 
        /**
+        * @template T of \OCP\EventDispatcher\Event
         * @param string $eventName
+        * @psalm-param string|class-string<T> $eventName
         * @param Event $event
+        * @psalm-param T $event
         *
         * @since 17.0.0
         */
index 25906fa798ecabd4c88024113319e354ad02b77a..fcf44133aff707478be42792a68d415d845727dd 100644 (file)
@@ -28,11 +28,14 @@ namespace OCP\EventDispatcher;
 
 /**
  * @since 17.0.0
+ *
+ * @template T of Event
  */
 interface IEventListener {
 
        /**
         * @param Event $event
+        * @psalm-param T $event
         *
         * @since 17.0.0
         */