Автоматическое переформатирование унаследованного PHP-кода для спагетти - PullRequest
9 голосов
/ 15 декабря 2008

Я взял на себя смешанный проект PHP4 / PHP5, который передавался от разработчика к разработчику, и каждый из них ухудшал ситуацию. Прежде чем тратить на это слишком много времени, я бы хотел разработать базовый стандарт с минимальным согласованным форматированием.

Кто-нибудь может порекомендовать утилиту (предпочтительно Linux или Mac OS X), которая будет переформатировать код?

Если я могу установить параметры, которые влияют на вывод (например, табуляция, размещение скобок / скобок, когда разбивать значения массива на новые строки и т. Д.), То это преимущество, хотя и не принципиально.

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

Ответы [ 6 ]

11 голосов
/ 15 декабря 2008

Вы можете сделать это с Netbeans или с Eclipse PDT , оба превосходных редактора PHP. В каждом из них есть опция Формат кода, которая будет переформатировать выбранный файл в соответствии с вашими предпочтениями стиля кода. Также может быть возможность форматировать код навалом.

Я рекомендую, если вы сделаете это, выполните форматирование и сразу же верните код обратно с большим жирным «РЕФОРМАТИРОВАНИЕ!» комментарий. Попытка смешать другие исправления ошибок с переформатированием приводит к неприятным на вид файлам различий, чтобы попытаться расшифровать их в будущем.

5 голосов
/ 26 августа 2009

Я использую phptidy: http://cmr.cx/phptidy/ https://github.com/cmrcx/phptidy

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

Обновление: для более агрессивного инструмента, основанного на стандартах, рассмотрим PHP CS Fixer: https://github.com/FriendsOfPhp/PHP-CS-Fixer

2 голосов
/ 15 декабря 2008

Я использовал http://www.phpformatter.com/,, который является онлайн-инструментом.

1 голос
/ 09 марта 2012

Что-то, что я недавно нашел, и что я сейчас люблю и постоянно использую. В vim:

gg=G

Для этого требуется следующая опция конфигурации, которую вы можете установить в ~/.vimrc:

filetype plugin indent on
0 голосов
/ 15 декабря 2008

В своем собственном поиске я нашел статью Википедии о Pretty Print , которая, я думаю, будет полезна.

0 голосов
/ 15 декабря 2008

Оформить заказ CodeSniffer . Я также использовал этот скрипт

...