PHP: классы друзей и функция / класс неадекватного вызывающего

Есть ли способ получить функцию вызывающего с чем-то еще, кроме debug_backtrace ()?

Я ищу менее жадный способ имитировать области видимости, такие какдруг или жевнутренний.

Допустим, у меня есть класс А и класс В.

До сих пор я используюdebug_backtrace(), который слишком жадный (ИМХО).

Я думал о чем-то вроде этого:

<?php

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

    class B
    {
        public function someMethod()
        {
            $obj = new A($this);
        }
    }
?>

Это может быть хорошо, если вы хотите ограничить его одним конкретным классом, но, скажем, у меня есть 300 классов, и я хочу ограничить его до 25 из них?

Одним из способов может быть использование интерфейса для агрегирования:

public function __construct(CallerInterface $callerObj)

Но это все ещенекрасивый код.

Кроме того, выне может использовать этот трюк сстатический классы.

Есть идеи получше?

Ответы на вопрос(2)

Ваш ответ на вопрос