Php 使用另一个作用域中的魔法常量

Php 使用另一个作用域中的魔法常量,php,class,static,magic-methods,Php,Class,Static,Magic Methods,我创建了一个类Debug,其中所有属性和方法都是静态的。使用这个类,我将它用作正在做什么以及在什么时候做的日志(事实上,我现在正在测试性能问题,所以我现在想知道什么以及什么时候做) 所以现在我在每个类的每个主要方法中都有一些东西,比如Debug::log(uuu class_uu.:'。uu方法_u)。在Debug::log()方法中,我可以添加时间并将其存储在某个数组中 如果我想有一天改变行为,我需要改变许多文件中的大量代码 我的问题是:是否有可能以某种方式忽略这些\uuuuuu CLASS\

我创建了一个类
Debug
,其中所有属性和方法都是静态的。使用这个类,我将它用作正在做什么以及在什么时候做的日志(事实上,我现在正在测试性能问题,所以我现在想知道什么以及什么时候做)

所以现在我在每个类的每个主要方法中都有一些东西,比如
Debug::log(uuu class_uu.:'。uu方法_u)。在
Debug::log()
方法中,我可以添加时间并将其存储在某个数组中

如果我想有一天改变行为,我需要改变许多文件中的大量代码

我的问题是:是否有可能以某种方式忽略这些
\uuuuuu CLASS\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu__方法\uuuu
Debug::log()
方法将知道从哪个类和从哪个方法调用它


可能是调用堆栈?

您正在寻找的函数是;它将为您提供可用于此目的的数据结构。没有办法让魔法常量这样工作,尽管我同意这个想法,你可以考虑发布一个特征请求,让魔法常数用作函数定义中的缺省值,在调用时进行评估,而不是定义时间。我支持这样的功能请求。

您正在进行的日志记录看起来像是反射式日志记录,而不是基于方面的日志记录

通过依赖注入,您可以走得更远。为您想要记录的不同类型的内容添加日志记录器,例如入侵、错误密码、邮件日志等

在我看来,反射式日志记录没有多大意义,这要求您暴露太多的内部内容


如果您只是想在发生错误时使用stacktrace,请使用
Exception->getTrace

好吧,我不认为这是一个好主意,但对我来说非常清楚,并且易于使用。我不仅有类,还有函数。我需要能够在任何代码行中复制粘贴
Debug.log()
,这非常适合我的需要。代码工作正常,但速度很慢,所以我需要测试它的逻辑。谢谢,这正是适合这里的