This commit is contained in:
2026-03-21 12:17:16 -04:00
parent a73e788b11
commit 5598373b09
10 changed files with 73 additions and 22 deletions

View File

@@ -1,3 +1,3 @@
# Potter Framework Component Template # Potter Framework Event Dispatcher Implementation
Hello World Hello World

View File

@@ -1,9 +1,9 @@
{ {
"name": "potter/template", "name": "potter/event",
"description": "Potter Framework Component Template", "description": "Potter Framework Event Dispatcher Implementation",
"version": "1.0.0", "version": "1.0.0",
"type": "library", "type": "library",
"homepage": "https://gitpotter.com/Potter/Template", "homepage": "https://gitpotter.com/Potter/Event",
"license": "MIT", "license": "MIT",
"authors": [ "authors": [
{ {
@@ -14,11 +14,14 @@
], ],
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Potter\\Template\\": "src/Potter/Template/" "Potter\\Event\\": "src/Potter/Event/"
} }
}, },
"minimum-stability": "stable", "minimum-stability": "stable",
"require": { "require": {
"php": "^8.3" "php": "^8.3",
"psr/event-dispatcher": "^1.0",
"league/event": "^3.0",
"potter/aware": "^1.0"
} }
} }

View File

@@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
namespace Potter\Event;
use \League\Event\EventDispatcher as BaseDispatcher;
abstract class AbstractDispatcher extends BaseDispatcher implements DispatcherInterface
{ }

View File

@@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
namespace Potter\Event;
final class Dispatcher extends AbstractDispatcher
{
use DispatcherTrait;
}

View File

@@ -0,0 +1,15 @@
<?php
declare(strict_types=1);
namespace Potter\Event;
use \League\Event\EventDispatcher as BaseDispatcher;
use \League\Event\EventDispatcherAware as BaseDispatcherAwareInterface;
use \Potter\Aware\AwareInterface;
interface DispatcherAwareInterface extends BaseDispatcherAwareInterface, AwareInterface
{
public function useEventDispatcher(BaseDispatcher $dispatcher): void;
public function eventDispatcher(): BaseDispatcher;
}

View File

@@ -0,0 +1,8 @@
<?php
declare(strict_types=1);
namespace Potter\Event;
trait DispatcherAwareTrait
{ }

View File

@@ -0,0 +1,13 @@
<?php
declare(strict_types=1);
namespace Potter\Event;
use \League\Event\EventDispatchingListenerRegistry as BaseDispatcherInterface;
use \Psr\EventDispatcher\EventDispatcherInterface as PsrDispatcherInterface;
interface DispatcherInterface extends BaseDispatcherInterface, PsrDispatcherInterface
{
public function dispatch(object $event): object;
}

View File

@@ -0,0 +1,8 @@
<?php
declare(strict_types=1);
namespace Potter\Event;
trait DispatcherTrait
{ }

View File

@@ -1,8 +0,0 @@
<?php
declare(strict_types=1);
namespace Potter\Template;
interface TemplateInterface
{ }

View File

@@ -1,8 +0,0 @@
<?php
declare(strict_types=1);
namespace Potter\Template;
trait TemplateTrait
{ }