Есть ли автоматический способ исправить одну строку ifs в PHP?
Я не знаю, только это я или нет, но у меня аллергия на одну строку, если в любом c как язык, я всегда хотел бы видеть фигурные скобки после, если вместо
if($a==1)
$b = 2;
или же
if($a==1) $b = 2;
Я хотел бы увидеть
if($a==1){
$b = 2;
}
Я полагаю, что могу поддержать свои предпочтения, утверждая, что первый из них более подвержен ошибкам и имеет меньшую читабельность.
Моя проблема сейчас заключается в том, что я работаю над кодом, который упакован с этими однострочными ifs, мне было интересно, есть ли какая-нибудь утилита, которая поможет мне исправить эти ifs, какой-то вид php-кода, который сделает это,
Я также думал о разработке какого-то рода регулярных выражений, которые можно было бы использовать с командой linux sed, чтобы выполнить это, но я не уверен, возможно ли это, учитывая, что регулярное выражение должно совпадать с одной строкой if, и заключить их в фигурные скобки, поэтому логика заключалась бы в том, чтобы найти условное выражение if и if, а затем искать {после условия, если оно не найдено, затем переносить следующую строку или следующий набор символов перед разрывом строки, а затем переносить его с помощью {и}
Как вы думаете?
1 ответ
Лучше всего, вероятно, использовать встроенный токенайзер PHP и анализировать полученный токен.
См. Этот ответ для получения дополнительной информации о PHP Tokenizer: /questions/33573885/metod-naprimer-s-pomoschyu-skripta-bash-dlya-preobrazovaniya-indeksov-massiva-php-ispolzuyuschih-v-nastoyaschee-vremya-konstantyi-v-indeksyi-massiva-s-ispolzovaniem-strok-v-odinarnyih-kavyichkah/33573896#33573896
Вы также можете взглянуть на сценарий, который я написал, для разбора исходных файлов PHP, чтобы исправить еще одну распространенную проблему в унаследованном коде, а именно исправить индексы без кавычек: https://github.com/GustavBertram/php-array-index-fixer/blob/master/aif.php
Скрипт использует конечный автомат вместо обобщенного парсера, но в вашем случае он может быть достаточно хорошим.