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)
Но это все ещенекрасивый код.
Кроме того, выне может использовать этот трюк сстатический классы.
Есть идеи получше?