2012-01-11 4 views
1

я не знаю, если это только меня или нет, но у меня аллергия на одной линии КСФ в любом с, как язык, я всегда хотел видеть фигурные скобки после, если, так что вместоЕсть ли автоматизированный способ исправления одной строки ifs в PHP?

if($a==1) 
    $b = 2; 

или

if($a==1) $b = 2; 

Я хотел бы видеть

if($a==1){ 
    $b = 2; 
} 

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

Моя проблема прямо сейчас в том, что я работаю над кодом, который упакован с этой одной строкой ifs, мне было интересно, есть ли какая-то утилита, которая поможет мне исправить эти ifs, своего рода php code beautifier это сделало бы это.

Я также думал о разработке своего рода регулярного выражения, которое можно было бы использовать с командой sed linux, чтобы выполнить это, но я не уверен, что это даже возможно, учитывая, что регулярное выражение должно соответствовать одной строке ifs и завершать их с скобками скобок, поэтому логика заключалась бы в том, чтобы найти оператор if и условный, а затем искать {после условия, если не найти, затем обернуть следующую строку или следующий набор символов до разрыва строки, а затем обернуть ее с {и}

Как вы думаете?

+2

Если это код, принадлежащий команде, проконсультируйтесь с ними, прежде чем вносить какие-либо изменения в соглашение о кодировании (если только код не соответствует письменному документу стандартов) –

+1

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

+2

Я понимаю, откуда вы пришли (я всегда использую фигурные скобки), но я буду беспокоиться о том, что ошибки распознавания полностью нащупывают код. Лично, всякий раз, когда мне приходится работать с кем-то elses-кодом (и они больше не отвечают за него), я просматриваю вручную и переформатирую все по своему вкусу. Это требует времени, но я могу прочитать и понять весь код. – MrGlass

ответ

1

Лучше всего использовать встроенный PHP-токенизатор и проанализировать полученный поток токенов.

Смотрите этот ответ для получения дополнительной информации о PHP Tokenizer: https://stackoverflow.com/a/5642653/1005039

Вы также можете взглянуть на сценарий, который я написал для анализа исходных PHP файлов, чтобы исправить еще одну распространенную проблему унаследованного кода, а именно исправить в кавычки массив индексы: https://github.com/GustavBertram/php-array-index-fixer/blob/master/aif.php

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

+0

Молодцы, шляпы от вас – Yasser1984

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