Задать вопрос
uonick
@uonick
Сгибатель бананов

Как узнать что вызвало метод трейта?

Привет!

Есть класс модельки и трейт. В трейте есть какой-то метод. При вызове метода модели срабатывает метод трейта и все отлично.
Модель можно получить по __CLASS__ , вызваный метод трейта по __METHOD__.

Вопрос: а как узнать какой метод модели его вызвал?
  • Вопрос задан
  • 168 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
sergiks
@sergiks Куратор тега PHP
♬♬
debug_backtrace() вернёт массив стека вызова.

Соотв. вызывавшая нынешнюю функцию окажется под индексом 1:
function A() {	Foo(); }
function B() {	Foo(); }

function Foo() {
	$stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
	if( count($stack) > 1) echo "Меня вызвали из " . $stack[1]['function'] . PHP_EOL;
}

A(); // попробуйте поменять на B();
// Меня вызвали из A
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы