昨天在换了自己的开发环境后(在VMware中安装Linux,运行Nginx+PHP+MySQL,挂在Windows共享目录存放代码),有一点很不适应的就是,var_dump打印出来的数据很不友好,
array(1) { [0]=> array(2) { [0]=> string(4) "2[a]" [1]=> string(5) "5[ef]" } }
和之前用wamp的时候打印数组是格式化过的,很容易看清数组结构。有想过折中的办法,先转换成JSON,在将JSON格式化。正当准备这么干的时候,突然想起有个xdebug这个东西,替换了PHP自带的var_dump函数,将不同的数据类型用不同的颜色显示,猜测可能是由于wamp安装了xdebug的原因。于是决定安装xdebug扩展。
https://xdebug.org/
编译安装xdebug之后,修改php.ini,重启php-fpm.查看phpinfo();再次打印数组:
感觉突然好打脸啊,使用PHP这么久了,现在才知道自己一直在使用的var_dump()被xdebug重写了。在工作中看到还是有人在使用print_r(),虽然相比于直接用var_dump()输出友好些了,但还是没有xdebug好用。
xdebug的其他功能也是非常不错,
1、代码覆盖率测试
通过这是可以查看执行的代码是在哪一行,有那些行没有执行
xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE)
xdebug_get_code_coverage
2、变量显示相关设置
var_display_max_children
var_display_max_depth
var_display_max_data
3、方法堆栈跟踪
xdebug_get_function_stack
4、内存消耗查看
xdebug_peak_memory_usage
xdebug_memory_usage
测试的时候和memory_get_usage、memory_get_peak_usage等效的。在最高并发的情况下,服务器应该配置多大的内存应该有帮助。