首页 > php框架 > Laravel > 正文

Laravel 中 SQL Debug 小技巧

Guanhui
发布: 2020-06-12 17:56:19
转载
3137 人浏览过

Laravel 中 SQL Debug 小技巧

基于某些原因,你不能使用 Laravel DebugBar ,这篇文章可能会帮到你。

针对 Laravel 应用的优化远远不止消除 N+1 问题那么简单。合理的使用 Laravel DebugBar 可以对模型内存的使用以及 SQL 查询时效等问题给出合理的解决方案。

可能你并不喜欢使用 Laravel DebugBar,或者基于某些原因而不能使用(比如基于接口应用的开发),那么 Database Listener 将会是个不错的方法,他将记录你的 SQL 查询到日志。

这在生产环境与测试环境同样适用,你可以很简单的通过 env 或者 config 控制它的启用与否。

如何使用:

将此添加到你的 AppServiceProvider 的启动方法中

 if (env("SQL_DEBUG_LOG"))
    {
        DB::listen(function ($query) {
            Log::debug("DB: " . $query->sql . "[".  implode(",",$query->bindings). "]");
        });
    }
登录后复制

如果你在生产环境中使用它的话,我建议你可以把 config 中的配置信息放到 env 中,然后你还可以(并且应该)缓存这个 config 信息

我发现另一个问题是假如 sql 调用本身失败,会抛出一个异常,在成功调用前其监听的 DB::listen 并不会进行记录,并且该异常会在返回到监听之前发生。

推荐教程:《PHP教程》《Laravel教程

以上是Laravel 中 SQL Debug 小技巧的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:learnku.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板