Есть ощущение, что половину можно стереть. Ну или как минимум половину содержимого файлов, учитывая, что многие реализуют стандартные функции, которые есть в PHP нативно (видимо, тяжкое наследие прошлых версий).
В общем, вопрос следующий: есть ли инструмент, который, получив на вход PHP-скрипт, выявит всю цепочку зависимостей в виде типа «в функции А используется функция Б из файла Зю», «функция Б из файла Зю использует функцию В из файла Мю» и т.д.
Однако, вы можете использовать профайлер, он показывает откуда какая функция вызывалось, сколько времени это заняло, суммарное количество вызова функций, и т.д., смотрите в сторону zend debug и xdebug
ну и если что-нибудь поможет — напишите отчет, пожалуйста, потому что сам я не пробовал, только теоретически знаю о существовании этих интсрументов, а почитать было бы интересно как оно на практике
phpdcd is a Dead Code Detector (DCD) for PHP code. It scans a PHP project for all declared functions and methods and reports those as being «dead code» that are not called at least once.
Limitations
As PHP is a very dynamic programming language, the static analysis performed by phpdcd does not recognize function or method calls that are performed using one of the following language features:
Reflection API
call_user_func() and call_user_func_array()
Usage of the new operator with variable class names
Variable class names for static method calls such as $class::method()
Variable function or method names such as $function() or $object->$method()
Automatic calls to methods such as __toString() or Iterator::*()
Also note that infering the type of a variable is limited to type-hinted arguments (function foo(Bar $bar) {}) and direct object creation ($object = new Clazz)
Все, конечно, зависит от приложения, но в моей практике это встречается достаточно часто.
Ну я не знаю таких тулов но вы можете сделать так:
В каждой функции поставить debug_backtrace, и куда-нибудь это сохранять. Далее при нормальной работе собрать данные о том что куда вызывает, проанализировать и что-таки узнать. Из-за моих незнаний это первый вариант который мне в голову приходит. Если найдете такую тулу, киньте в ответ пожалуйста. Спс.
Берете любую IDE с поиском по файлам, вводите название функции, смотрите, где она используется, удаляете, проверяете, все ли работает. Затем удаляете следующую. И так далее.
При большом колличестве таких функций занятие растянется на n часов. Лучше уж тогда проверить наличие мертвого кода, и потом искать уже устаревшие функции.
Теоретически я могу и интерпретатор PHP написать, который расскажет мне именно то, что я хочу знать :)))
Но мне как-то желательно решить эту задачу разумными силами и средствами.