2012-01-30 3 views
3

Есть ли какой-нибудь инструмент, который мог бы сказать бесполезные файлы в базе кода?Удалить ненужные файлы из базы кода

У нас есть большая база кода (PHP, HTML, CSS, JS-файлы), и я хочу иметь возможность удалить ненужные файлы. Любая помощь будет оценена по достоинству.

+9

Вы пробовали человеческий мозг? :) Удовлетворение гарантировано :) – J0HN

+2

Какая магия, с помощью которой она что-то знала, бесполезна? – Wrikken

+1

inB4close. , , , – Mob

ответ

3

Я предполагаю, что удаление файлов и запуск ваших тестов phpunit не является стартовым.

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

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

Вышеприведенное является наиболее подходящим (возможно) для файлов frontend (css, js, images). Любые файлы, которые вы хотите удалить, будут отображаться в журнале ошибок веб-сервера, что даст вам краткую информацию о файлах, которые существуют, которые вам нужны для восстановления.

Для ваших php-файлов это довольно сложно: как вы попали в позицию, где у вас есть файлы php, которые вы не используете? В любом случае вы могли бы, например:

  • Используйте Xdebug
  • Включить профилирование
  • Используйте режим добавления (один профиль)
  • Используйте все функции вашего приложения

и вы бы тогда профиль, который включает все загруженные вами файлы. Сканирование сгенерированного профиля для каждого php-файла в вашей кодовой базе даст вам некоторое представление о том, какие файлы вы не использовали.

Если вы ищете неиспользуемые файлы, не искушайтесь использовать анализ покрытия кода - это очень интенсивно, а не уровень детализации, о котором вы просите.

Менее рискованным способом было бы регистрировать каждый раз, когда файл загружается. например поместите это в строке один из каждого файла:

<?php file_put_contents('/some/location/fileaccess.log', __FILE__, FILE_APPEND); ?> 

и просто оставьте заявку на какое-то время (дни, недели). После этого просто сканируйте этот журнал для любого имени файла - удалите указанную выше строку кода. Для любых, которые не являются - delete (желательно после поиска имени файла во всем исходном коде и подтверждения его отсутствия).

ИЛИ: вы можете использовать функцию выключения, которая отбрасывает ответ get_included_files() в файл журнала. Это позволит вам добиться такого же результата без редактирования всех php-файлов в исходном дереве.

Предостережение: будьте осторожны, удаляя ваши php-файлы. В то время как отсутствующий css/js/image, вероятно, будет означать, что ваше приложение все еще работает, недостающий php-файл, конечно, будет иметь больше влияния :).

0

Если это в Git, то почему бы не удалить локальный файл, а затем сделать git rm <file name>, чтобы удалить его из этой ветви.

0

Согласны со всем, что сказал @ AD7six.

Что вы можете попробовать с PHP - это зарегистрировать использование файлов в некотором смысле (запись в плоский файл или базу данных).

Этот метод не обязательно должен находиться надолго, вы можете сделать это с помощью include и require_once в верхней части каждого файла.

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

Остальное не так просто, но отслеживание версий - это путь.

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