跟踪Yii2中每个请求的数据

时间:2014-12-24 13:36:40

标签: yii2

代码中用于跟踪用户上次访问日期的最佳位置或每次应用程序请求应跟踪的数据是什么?扩展yii \ web \ Controller是否是个好主意?

1 个答案:

答案 0 :(得分:4)

您可以使用基本控制器,当然这是个好主意。但是还有另一种更优雅的方法。你可以这样做:

1 - 将组件添加到组件目录中,例如(MyTrackingClass):

namespace app\components;
class MyTrackingClass extends \yii\base\Component{
    public function init() {
        //SOME CODE HERE
        //SOME CODE HERE
        //SOME CODE HERE
        parent::init();
    }
}

2 - 将MyTrackingClass组件添加到配置文件中的组件数组中:

'components' => [
    'MyTrackingClass'=>[
        'class'=>'app\components\MyTrackingClass'
     ],
     //other components

3 - 将MyTrackingClass添加到配置文件中的bootstarp数组中:

'bootstrap' => ['log','MyTrackingClass'],

现在,您可以看到您在init()方法中所写的所有内容,将在每个请求中,每个modulecontrolleraction等中执行。 ..

请注意,如果您不需要使用EventsBehaviors,则可以使用\yii\base\Object代替\yii\base\Component