Symfony 4.1 VarDumper —— var_dump 调试流 PHPer 的福音

Symfony 4.1 VarDumper —— var_dump 调试流 PHPer 的福音

Chris Yue 2 comments
Posts

虽然说有了 XDebug 加 IDE 可以让 PHP 的调试也可以像其他语言一样,但直接在代码里面 var_dump 的做法还是深入人心,毕竟不用花时间做任何配置就可以使用,而且立马见效。

但自带的 var_dump 的『颜值』的确是有点太寒酸…… 虽然 XDebug 对原生 var_dump 输出样式做了一些小优化,但依然就是 0 分和 10 分的区别而已。

一些对美有要求的 PHPer 坐不住了,创造了『第三方』的 var_dump,比如我以前用过的 Kint,虽然以现在眼光看挺 00 年代的,但当时真觉得甩了原产 var_dump 几十条街。

没隔多久,Symfony2 推出 VarDumper 组件,不仅把『颜值』整到新高度,还提出了便利性。无论是原生 var_dump 还是 Kint 的 dd,都是直接输出 HTML 内容,很可能会破坏原页面输出的布局;Symfony 的 dump 结合 Symfony 网页调试工具条,直接将 dump 的输出保存下来,放到工具条上面输出,而不影响原有的网页输出。

不仅如此,Symfony dump 还支持在命令行下的显示,也比原厂的好一百倍。

目前流行的还有 Laravel dd,输出的结果跟 Symfony VarDumper 是一样的,应该就是用的 Symfony VarDumper 组件。

不过,无论是原厂还是第三方 var_dump,目前还是有一个问题:如果我写的是 web API 呢?

在之前,这个问题要想解决一般是通过日志,或者使用步进调试器设置 watch。当然,如果你用的是 Postman 或者类似的浏览器扩展做的 REST 接口调试工具,可能也能直接显示 dump 结果。只不过这么做不够直接,不能拿来即用,或者得用指定的工具,并且依然有可能会有显示问题(毕竟要 mime type 是 text/html 才能漂漂亮亮显示)。而即将发布的 Symfony 4.1,即将优雅得解决这个问题。

Symfony 4.1 的 VarDump 套组增加了一个新的工具,通过创建一个服务来搜集 dump 的信息,有点类似于日志的方式,但好消息是,不用你自己去创建了:

dump 服务打印出来的信息不仅包含 dump 的变量数据,还包含被执行的文件,或者访问的是什么地址等上下文信息(图片例子第一部分是打开 dump 服务的命令,第二部分是执行自定义的命令之后,命令行出现的 dump 结果,第三部分是访问网站后,命令行出现的 dump 结果)

symfony-dump-server

访问 HTML 页面的结果如下所示:

symfony-dump-server-web-iu

配置也十分简单,仅需要添加:

眼看 Symfony 4.1 就要发布,用惯了 var_dump 调试的各路 PHP 老司机们是不是有点兴奋呢?

Symfony 4.1 VarDumper —— var_dump 调试流 PHPer 的福音 by Chris Yue is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

微信赞赏码

文章不错,我要帮站长分担建站费!
天使投赏人

2 Comments

六月 4, 2018 在 10:49 上午

居然换了界面风格了

    Chris Yue

    六月 5, 2018 在 8:24 上午

    一看公子就是老顾客了,进来玩儿啊

     

发表评论

÷ five = 1