nekopoi/events

php事件和promise

v1.6.2 2021-03-11 12:06 UTC

This package is auto-updated.

Last update: 2024-09-11 20:10:16 UTC


README

class MyEvents extends \Neko\Events\Events {
    const EventCallBack = "EventCallBack";

    public static function EventCallBack(\Closure $func)
    {
        self::listen(self::EventCallBack,$func);
    }
}

MyEvents::EventCallBack(function (){
    var_dump('trigger'.random_int(1,10));
    return random_int(1,10);
});

MyEvents::trigger(MyEvents::EventCallBack);
//string(9) "trigger10"

MyEvents::trigger(MyEvents::EventCallBack);
//string(8) "trigger2"

// 会缓存结果
$num1 = MyEvents::trigger_once(MyEvents::EventCallBack);
$num2 = MyEvents::trigger_once(MyEvents::EventCallBack);
//array(2) {
//  ["num1"]=>
//  int(9)
//  ["num2"]=>
//  int(9)
//}

// 清除缓存结果
MyEvents::clear_cache(MyEvents::EventCallBack);
$num1 = MyEvents::trigger_once(MyEvents::EventCallBack);
$num2 = MyEvents::trigger_once(MyEvents::EventCallBack);
var_dump(['num1'=>$num1,'num2'=>$num2]);