当前位置: 首页 > 后端技术 > PHP

Yii事件的优雅使用

时间:2023-03-30 05:13:29 PHP

在Yii中使用事件可能看起来像这样,'methodNameB']);//触发事件$component->trigger($event::EVENT_NAME,$event);从上面的代码可以看出,如果要触发5个监听事件,需要侵入6行代码,显然不够优雅,所以我写了一个组件包来绑定事件和监听器组件配置文件,调用时只需一行代码即可触发事件。源码https://github.com/guanguans/yii-event环境要求Yii>2.0安装$composerrequireguanguans/yii-event-vvvconfiguration...'components'=>[...'event'=>['class'=>\Guangans\YiiEvent\Event::className(),'listen'=>[//事件类名\app\events\ExampleEvent::className()=>[//这个的监听器类名event\app\listeners\ExampleListener::class,],],],...],...使用示例创建一个事件app\events\ExampleEvent.phpnamespaceapp\events;useyii\base\Event;classExampleEventextendsEvent{public$name='example';}创建监听器app\listeners\ExampleListener.phpnamespaceapp\listeners;useGuanguans\YiiEvent\ListenerInterface;useyii\base\Event;classExampleListenerimplementsListenerInterface{publicstaticfunctionhandle(Event$event){//做某事。var_export($事件->名称);}}触发事件Yii::$app->event->dispatch(newExampleEvent());//orevent(newExampleEvent());验证结果'example'