• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP 全链路嵌套方法层级追踪之debug_backtrace() 函数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

前言:在项目开发中,某个功能的实现可能连续嵌套调用的多个公共方法,这个时候想排查整个链路调用了什么方法?都在什么位置调用,我们该如何操作呢?

首先想到的可能时使用打印全局变量$_SERVER,但此函数只是打印出初始调用的方法名。其实PHP已经提供了对应的堆栈链路函数:debug_backtrace() 函数

debug_backtrace() 函数

函数定义:

debug_backtrace() 函数生成 backtrace。

该函数显示由 debug_backtrace() 函数代码生成的数据。

返回一个关联数组。下面是可能返回的元素:

名称 类型 描述
function string 当前的函数名。
line integer 当前的行号。
file string 当前的文件名。
class string 当前的类名。
object object 当前对象。
type string 当前的调用类型,可能的调用:
  • 返回:"->" - 方法调用
  • 返回:"::" - 静态方法调用
  • 返回 nothing - 函数调用
args array 如果在函数中,列出函数参数。如果在被引用的文件中,列出被引用的文件名。

 

函数用法:

#获取全链路链路调用中的方法和所在行数
$array
= debug_backtrace(); foreach ($array as $row) { $info[] = $row['file'] . ':' . $row['line'] . '行,调用方法:' . $row['function']; } var_dump( $info);

结果如图:

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
thinkphp3.2.3在nginx+php下的url重写配置经验发布时间:2022-07-10
下一篇:
php-fpm的启动、配置及常见错误发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap