hasan-22/event-listener

使用这个包,您可以轻松地将事件和监听器添加到您的项目中

v1.0.0 2023-02-13 19:37 UTC

This package is auto-updated.

Last update: 2024-09-13 23:07:51 UTC


README

使用此包,您可以将 eventlistener 轻松添加到您的项目中

   composer require hasan-22/event-listener

使用方法

您可以为事件创建一个类,为监听器创建另一个类。请注意,监听器类必须实现 \EventListener\ListenerInterface 接口

在这个例子中,我们认为我们有两个登录事件的监听器类

我们的类名为 LoginEventLoginListener

require_once __DIR__.'/vendor/autoload.php';
 
//With function listen we can add register our event and listener
\EventListener\Event::listen(LoginEvent::class, LoginListener::class);

// Now we can fire events anywhere in the project like this
\EventListener\Event::fire(new LoginEvent());

// If your event have constructor with parameters you can pass the parameters like this
// Be careful that your parameters must have public access
\EventListener\Event::fire(new LoginEvent('Armia','123456'));

如果您不想为监听器和事件创建类,我们可以这样创建事件和监听器

\EventListener\Event::listen('login',function(){
    echo 'user is login';
})
\EventListener\Event::fire('login');

// With parameter

\EventListener\Event::listen('login',function($username){
    echo "Hello $username";
})
\EventListener\Event::fire('login','Armia');

如果您有多个事件和监听器,您可以依次调用 listenfire

\EventListener\Event::listen('event_one',function($name){
    echo "Hello $name";
})->listen(EventTwo::class, ListenerTwo::class)->listen('event_three', function(){});

// Fire events
\EventListener\Event::fire('event_one','Armia')->fire(new EventTwo())->fire('event_three');

如果您想删除事件,可以这样做

\EventListener\Event::delete('event_name');