motokraft/event

事件调度器

v1.0.0 2023-02-12 20:07 UTC

This package is not auto-updated.

Last update: 2024-09-24 01:46:12 UTC


README

Package version Total Downloads PHP Version Repository Size License

安装

此库通过 Composer 软件包管理器安装

将库添加到您的项目中的 composer.json 文件

{
    "require": {
        "motokraft/event": "^1.0"
    }
}

或执行终端命令

$ php composer require motokraft/event

在项目代码中启用 Composer 自动加载器

require __DIR__ . '/vendor/autoload.php';

使用示例

use \Motokraft\Event\EventHelper;
use \Motokraft\Event\EventMethod;
use \Motokraft\Event\ObjectEvent;
use \Motokraft\Event\EventInterface;
use \Motokraft\Event\EventTypeInterface;
use \Motokraft\Event\Traits\EventTrait;
use \Motokraft\Object\BaseObject;

class UserObject extends BaseObject implements EventTypeInterface
{
    use EventTrait;

    private int $id = 0;
    private string $name = 'admin';
}

EventHelper::addTypeClass('user', UserObject::class);

class DemoEvent implements EventInterface
{
    function onPrepareUserObject(ObjectEvent $event) : void
    {
        $target = $event->getTarget();
        $target->set('login', 'SuperUser');
    }
}

UserObject::addEventMethod('prepare', new EventMethod(
	DemoEvent::class, 'onPrepareUserObject', 1
));

$user = new UserObject;

$event = $user->getObjectEvent('prepare');
$user->dispatchEvent($event);

print_R($user);

许可证

该库遵循 MIT 许可协议。