motokraft/event

Event dispatcher

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

This package is not auto-updated.

Last update: 2024-06-18 00:30:44 UTC


README

Event dispatcher

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 License.