Автоматическое переформатирование унаследованного PHP-кода-спагетти
-
21-08-2019 - |
Вопрос
Я взялся за смешанный проект PHP4 / PHP5, который передавался от разработчика к разработчику, и с каждым разом ситуация становилась все хуже.Прежде чем я потрачу на это слишком много времени, я хотел бы разработать базовый стандарт, как минимум, с согласованным форматированием.
Кто-нибудь может порекомендовать утилиту (предпочтительно Linux или Mac OS X), которая переформатирует код?
Если я могу установить параметры, которые влияют на вывод (например, отступ табуляции, размещение фигурных скобок, когда разбивать значения массива на новые строки и т.д.), То это преимущество, хотя и не решающее.
Предпочтение отдается инструментам с открытым исходным кодом, хотя я также хотел бы узнать о вашем опыте работы с приобретенным программным обеспечением.
Решение
Вы можете сделать это с помощью Netbeans - сетевые приложения или с Затмение PDT, оба отличные PHP-редакторы.В каждом из них есть опция Форматирования кода, которая переформатирует выбранный файл в соответствии с вашими предпочтениями в стиле кода.Также может быть предусмотрена возможность массового форматирования кода.
Я действительно рекомендую, если вы сделаете это, выполнить форматирование и немедленно вернуть код обратно с большим жирным комментарием "ПЕРЕФОРМАТИРОВАНИЕ!".Попытка смешать другие исправления ошибок с переформатированием приводит к появлению неприятно выглядящих файлов различий, которые приходится расшифровывать в дальнейшем.
Другие советы
Я использую phptidy: http://cmr.cx/phptidy/ https://github.com/cmrcx/phptidy
По дизайну он не такой агрессивный, как perltidy, но все равно очень полезен.Он может быть настроен и будет обрабатывать все php-файлы в вашем проекте в пакетном режиме.
Обновить:для получения более агрессивного инструмента, основанного на стандартах, рассмотрите PHP CS Fixer: https://github.com/FriendsOfPhp/PHP-CS-Fixer
Я использовал http://www.phpformatter.com/, который представляет собой онлайн-инструмент.
Кое-что, что я недавно нашел, что теперь люблю и постоянно использую.В vim:
gg=G
Для этого требуется следующий параметр конфигурации, который вы можете установить в своем ~/.vimrc
:
filetype plugin indent on
Оформить покупку Шифровальщик.Я также использовал это сценарий
В своих собственных поисках я нашел статья в Википедии о красивом принте что, я думаю, будет полезно.