当前位置:  开发笔记 > 编程语言 > 正文

生产代码中的PHP debug_backtrace来获取有关调用方法的信息?

如何解决《生产代码中的PHPdebug_backtrace来获取有关调用方法的信息?》经验,为你挑选了2个好方法。

是否有令人信服的理由不仅仅debug_backtrace用于确定调用方法的类,名称和参数列表?不用于调试目的.它在函数名中有"debug"这个词,这让我感觉有点脏,以这种方式使用它,但它符合我需要做的事情(一个可以从很多地方调用的函数)需要从另一个系统调用调用方法).它有效,但这仍然是个坏主意吗?如果是这样,为什么?



1> Alan Storm..:

它确实感觉有点脏,但是在其他地方已经有很好的记录,观察和殴打致死,PHP不是一个专为优雅而设计的系统.

一个非常复杂的理由是将debug_backtrace用于应用程序逻辑,因此有可能一些未来的PHP开发人员可以决定"它只是一个调试功能,性能并不重要".

如果您对"更好"的方法感兴趣,可以使用PHP的魔术常量来传递调用方法和类名,然后使用ReflectionMethod对象来提取您需要的任何其他信息.

我更好地使用引号,因为虽然这会更清晰,更正确,但实例化Reflection对象的开销可能比使用debug_backtrace函数更大.



2> Konrad Rudol..:

是否有令人信服的理由不使用debug_backtrace来确定调用方法的类,名称和参数列表?

是.关键是,如果您的代码需要如此紧密的耦合,以至于被调用者必须拥有关于其调用者的这些信息,那么它通常是糟糕设计的标志.因此,如果您觉得需要使用这些信息,您可能应该重新考虑您的设计.

坦率地说,被调用者不需要具有这些信息来执行其任务.当然,例外情况是围绕调试,日志记录以及更普遍的其他类型的代码内省(但即便如此,要小心它).


@Mawg是的.错误处理和调试通常非常相似.如果根本不应该使用该功能,为什么会存在?
推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有