Yii:仅为管理员用户启用分析

时间:2014-11-05 15:06:35

标签: php yii profiling

如何仅为管理员用户启用数据库分析?如果我在 config 中静态定义它,应用程序还不知道用户是否是管理员。

1 个答案:

答案 0 :(得分:1)

作为建议,在控制器中你可以这样做:

public function init(){
    $role=Rbac::role(Yii::app()->user->id);
    if($role=="admin"){
        Yii::app()->db->enableProfiling=true;
    }
    return parent::init();
}

请注意,我假设我们有一个名为Rbac的类,它有一个按用户ID(role())获取用户角色的方法。

此外,如果您有一个模块,您可以将其检入与控制器相同的init()方法。即使您有基本控制器类,也可以这样做。您也可以在控制器beforeAction()方法中执行此操作,如果您需要跳过某些特定操作。

为了更加优雅,您可以创建behavior并将其附加到控制器或将其放在preload配置文件中。

另一种方法是在用户登录UserIdentity类进程时执行此操作,以设置启用性能分析的状态,或者在内联登录成功后执行此操作。