为了账号安全,请及时绑定邮箱和手机立即绑定

如何理解yii2的 Event?全局绑定,特别疑惑

如何理解yii2的 Event?全局绑定,特别疑惑

慕桂英4014372 2019-04-21 20:37:30
疑惑不解这一段的内容https://github.com/yiisoft/yii2/blob/master/docs/guide/concept-events....,里面一直在不断的强调说事件Event的绑定:php$foo=newFoo;//thishandlerisaglobalfunction$foo->on(Foo::EVENT_HELLO,'function_name');//thishandlerisanobjectmethod$foo->on(Foo::EVENT_HELLO,[$object,'methodName']);//thishandlerisastaticclassmethod$foo->on(Foo::EVENT_HELLO,['app\components\Bar','methodName']);//thishandlerisananonymousfunction$foo->on(Foo::EVENT_HELLO,function($event){//eventhandlinglogic});问题是1)这一段代码是放在哪里?放在publicfunctionactionXXX(){}里面吗?2)我想让除admin的action之外的网站里面所有action在执行前都进行对会员是否登录,已登录会员是否已经创建了日志的检测,如何实现这个?
查看完整描述

2 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

可以放在执行Yii::$app->user->login()执行前进行绑定
如果全局绑定的话,可以放在bootstrap中进行绑定,例如:
\yii\base\Event::on(\yii\web\User::className(),\yii\web\User::EVENT_BEFORE_LOGIN,function($event){
//yourlogic
});
                            
查看完整回答
反对 回复 2019-04-21
?
慕少森

TA贡献2019条经验 获得超9个赞

作为__FresHmaN的一个补充:
在advanced-template中可以在@app/config/bootstrap.php中进行绑定,也可以用下面的方法;
在basic-template中可以在web.php中设置Yii::$app->bootstrap;
也可以在basic-templateconfig中自行创建bootstrap_what_ever.php,并在web/index.php中调用。
                            
查看完整回答
反对 回复 2019-04-21
  • 2 回答
  • 0 关注
  • 267 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信