locky42/leopard-events
最新稳定版本:1.0.0
Composer 安装命令:
composer require locky42/leopard-events
包简介
A library for handling PSR-14 events.
README 文档
README
Library for working with events in PSR-14 style for PHP 8.3+.
Installation
composer require locky42/leopard-events
Main Classes
EventManager— static facade for registering and dispatching eventsListenerProvider— stores listenersEventDispatcher— calls listeners for an event
Usage Example
Declaring an Event
// Any simple class-object can be an event class MyEvent { public function __construct(public ?object $obj = null) {} public $handled = false; public $updated = false; } class AnotherEvent {}
Registering a Listener
use Leopard\Events\EventManager; use MyEvent; // example $user = Session::getUser(); EventManager::addEvent(new MyEvent($user), function ($event) { $event->obj->isNew = false; });
Dispatching an Event
$event = EventManager::doEvent(MyEvent::class); if ($event->handled) { // event was handled }
or
EventManager::doEvent(MyEvent::class);
Passing an Object to an Event
$obj = new \stdClass(); $obj->value = 10; EventManager::addEvent(new MyEvent($obj), function ($event) { $event->obj->value = 20; }); EventManager::doEvent(MyEvent::class); // $obj->value == 20
Adding a Listener as a Class Method
EventManager::addEvent(new MyEvent(), [$this, 'updateObject']);
Removing a Listener
EventManager::removeEvent(new MyEvent(), [$this, 'updateObject']);
Clearing All Listeners
EventManager::getProvider()->clearListeners();
Testing
Tests are located in tests/ and use PHPUnit.
Run:
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests
License
MIT
统计信息
- 总下载量: 5
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-10-24