Зависимости скрипта PHP

Сижу-смотрю на груду PHP-файлов.

Есть ощущение, что половину можно стереть. Ну или как минимум половину содержимого файлов, учитывая, что многие реализуют стандартные функции, которые есть в PHP нативно (видимо, тяжкое наследие прошлых версий).

В общем, вопрос следующий: есть ли инструмент, который, получив на вход PHP-скрипт, выявит всю цепочку зависимостей в виде типа «в функции А используется функция Б из файла Зю», «функция Б из файла Зю использует функцию В из файла Мю» и т.д.
  • Вопрос задан
  • 3483 просмотра
Пригласить эксперта
Ответы на вопрос 8
NeX
@NeX
php это скриптовый язык, зависимости в нем определяются на этапе исполнения
Ответ написан
Мне кажется, вам могут помочь инструменты из этого обзора, в частности Dead Code Detector (DCD) for PHP code
Ответ написан
taliban
@taliban
php программист
Сложно будет предусмотреть такие ситуации:
call_user_func( $neededFunc, $params );
Ответ написан
lashtal
@lashtal
xdebug_start_code_coverage(); // в начало


$includes = array_keys(array_keys(xdebug_get_code_coverage())); // в конец
Ответ написан
@shagguboy
phpstorm как то делает. может уже и диаграммы рисует.
Ответ написан
wartur
@wartur
Ну я не знаю таких тулов но вы можете сделать так:

В каждой функции поставить debug_backtrace, и куда-нибудь это сохранять. Далее при нормальной работе собрать данные о том что куда вызывает, проанализировать и что-таки узнать. Из-за моих незнаний это первый вариант который мне в голову приходит. Если найдете такую тулу, киньте в ответ пожалуйста. Спс.
Ответ написан
@egorinsk
Берете любую IDE с поиском по файлам, вводите название функции, смотрите, где она используется, удаляете, проверяете, все ли работает. Затем удаляете следующую. И так далее.
Ответ написан
Писать тесты, рефакторить.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 100 000 до 180 000 ₽
от 270 000 до 300 000 ₽
Lenvendo Санкт-Петербург
от 150 000 до 200 000 ₽
09 дек. 2021, в 02:35
70000 руб./за проект
09 дек. 2021, в 00:28
50000 руб./за проект
09 дек. 2021, в 00:13
3000 руб./за проект