Получить список вызываемых функций в PHP

В PHP get_included_files() возвращает массив с именами включенных файлов.

Аналогичным образом, есть ли способ получить массив с именами вызываемых функций с параметрами?

Я пытался достичь желаемого и, наконец, придумал разумное решение.

Создайте класс с именем Debug и включите его над каждым файлом, который вы хотите отлаживать. Создайте функцию, которая хорошо печатает информацию, хранящуюся в $calls .

 class Debug { private static $calls; public static function log($message = null) { if(!is_array(self::$calls)) self::$calls = array(); $call = debug_backtrace(false); $call = (isset($call[1]))?$call[1]:$call[0]; $call['message'] = $message; array_push(self::$calls, $call); } } 

Вызовите эту функцию каждый раз, когда вы объявляете функцию первой строки в функции: Debug::log($message(optional) )

Таким образом, Есть ли способ получить массив с именами вызываемых функций с параметрами?

Нет.

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

Что ты хочешь делать? Возможно, есть другой подход.

Я искал что-то подобное и нашел трассировку xdebug очень полезной.

Вот пример того, как это могло бы выглядеть: http://devzone.zend.com/1135/tracing-php-applications-with-xdebug/

Не то, чтобы я знал.

Однако вы можете использовать debug_backtrace для получения текущей активной иерархии функций / методов.

Я не думаю, что есть способ сделать то, что вы хотите. Сожалею.

Самое близкое, что я могу получить, это function_exists() , которая сообщит вам, загружена ли определенная функция.

Что именно вы хотите достичь здесь? Я не вижу пример использования (за пределами экрана типа php_info ()), для которого потребуется список доступных функций.

Вам нужно будет установить его как расширение, но профайлер, такой как XHProf , даст вам разбивку о том, какие функции вызываются и как долго они берутся, а также callgraph.

XHProf или Webgrind / KCachegrind покажут вам вызываемые функции, но не их параметры.

Вы также можете использовать get_defined_functions , который дает вам список всех функций, определенных. Но он не покажет вам, какие функции действительно были вызваны, и с какими параметрами.

Если вам действительно нужно знать параметры, я не знаю никаких инструментов, кроме специализированного регистратора, как тот, который был предложен Хенце в его ответе.