相关疑难解决方法(0)

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

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

php

25
推荐指数
2
解决办法
1万
查看次数

PHP:朋友类和ungreedy调用函数/类

有什么方法可以使用debug_backtrace()之外的其他东西来获取调用函数吗?

我正在寻找一种不那么贪婪的方式来模拟朋友内部的范围.

假设我有A班和B班.

直到现在,我一直在使用debug_backtrace(),这太贪心了(恕我直言).

我想到了这样的事情:

<?php

    class A
    {
        public function __construct(B $callerObj) {}
    }

    class B
    {
        public function someMethod()
        {
            $obj = new A($this);
        }
    }
?>
Run Code Online (Sandbox Code Playgroud)

如果你想把它限制在一个特定的类,可能没关系,但是假设我有300个类,我想将它限制为25个?

一种方法是使用接口来聚合:

public function __construct(CallerInterface $callerObj)

但它仍然是一个丑陋的代码.

而且,你不能静态类中使用这个技巧.

有更好的主意吗?

php scope internal friend debug-backtrace

2
推荐指数
1
解决办法
1724
查看次数

标签 统计

php ×2

debug-backtrace ×1

friend ×1

internal ×1

scope ×1