放牧代码和思想
专注自然语言处理、机器学习算法

Yii调试的艺术——利用yii-debug-toolbar替代原生CWebLog

如果你嫌Yii原生的CWebLog路由在页面下生成的调试信息太丑太乱,那么你一定得试试这个extension——yii-debug-toolbar。

先来预览一下效果吧:

安装之后右上角会出现一个悬浮的“bug”

点击之后出现侧边栏,里面的分类一清二楚:

我们打开一个sql看看:

各种信息一清二楚,如果你这里显示的是No SQL queries were recorded during this request or profiling the SQL is DISABLED.那么你需要配置:

'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=myDB',
'emulatePrepare' => true,
'username' => 'myUsername',
'password' => 'myPwd',
'charset' => 'utf8',
'enableProfiling'=>true,
),

有了这个extension一下子就爱上了调试^_^)y 

另外我发现这个extension不支持categories和levels,解决方案是注释掉YiiDebugToolbarRoute.php的123行和124行:

            $this->categories = '';
            $this->levels='';

但是这样做了之后有可能会影响到整个插件的追踪,比如说'categories' => 'system.db.*',之后仍然无法追踪sql语句

知识共享许可协议 知识共享署名-非商业性使用-相同方式共享码农场 » Yii调试的艺术——利用yii-debug-toolbar替代原生CWebLog

分享到:更多 ()

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    他自己实现collectLogs函数,只要将对应参数传参就好。。。
    public function collectLogs($logger, $processLogs=false)
    {
    $logs = $logger->getLogs($this->levels,$this->categories,$this->except);

    晴兔3年前 (2015-04-20)回复

我的开源项目

HanLP自然语言处理包基于DoubleArrayTrie的Aho Corasick自动机