2014-02-13 3 views
4

Я знаком с функцией debug_backtrace в PHP и нахожу ее полезной. Тем не менее, у меня есть конкретный, очень грязный случай, когда мне нужно иметь возможность сделать обратное - вставьте вызов функции где-нибудь и пусть он даст мне список каждой функции, вызываемой после этой точки, до тех пор, пока страница не будет полностью загружена.Есть ли способ сделать «прямой след» в PHP?

У нас есть XDebug, и для большинства проектов я его использую. Это действительно грязная кодовая база, но с большим количеством ajax и php-кода, которые фактически созданы как строки и визуализированы (я НЕ написал этот код!), И никто из нас никогда не добивался успеха в работе отладчика.

+0

Вы можете использовать xdebug для создания профиля, Webgrind или любого подходящего gui для отслеживания того, куда идет код. – AD7six

+0

Спасибо за мысль, но я ничего не могу установить на нашем сервере, и похоже, что Webgrind необходимо установить где-нибудь, к которому может обращаться веб-сервер. – EmmyS

+0

Webgrind - это просто приложение php, оно принимает профиль xdebug в качестве входных данных, и ему не нужно быть одним и тем же способом генерации профиля - и это всего лишь один из многих guis (один без других требований к установке для разработчика php). – AD7six

ответ

1

PHP имеет функцию ticks, которая может быть вызвана при выполнении каждого оператора.

Использование функции тиков, my answer описывает класс CStatemenTracer, который записывает трассировку вызова наряду с исполнением вашего приложения.

Может быть отправной точкой.

Смежные вопросы