Browse Source

Merge pull request #17106 from nextcloud/feature/dispatch-typed-event

Add Symfony inspired typed event dispatcher method
tags/v18.0.0beta1
blizzz 4 years ago
parent
commit
ac48a9ba61
No account linked to committer's email address

+ 5
- 0
lib/private/EventDispatcher/EventDispatcher.php View File

@@ -31,6 +31,7 @@ use OCP\IContainer;
use OCP\ILogger;
use OCP\IServerContainer;
use Symfony\Component\EventDispatcher\EventDispatcher as SymfonyDispatcher;
use function get_class;

class EventDispatcher implements IEventDispatcher {

@@ -74,6 +75,10 @@ class EventDispatcher implements IEventDispatcher {
$this->dispatcher->dispatch($event, $eventName);
}

public function dispatchTyped(Event $event): void {
$this->dispatch(get_class($event), $event);
}

/**
* @return SymfonyDispatcher
*/

+ 12
- 0
lib/public/EventDispatcher/IEventDispatcher.php View File

@@ -58,4 +58,16 @@ interface IEventDispatcher {
*/
public function dispatch(string $eventName, Event $event): void;

/**
* Dispatch a typed event
*
* Only use this with subclasses of ``\OCP\EventDispatcher\Event``.
* The object's class will determine the event name.
*
* @param Event $event
*
* @since 18.0.0
*/
public function dispatchTyped(Event $event): void;

}

Loading…
Cancel
Save