Инспекция побуждает меня заключить однострочные условия в скобки. Кажется легкомысленным, каков логический аргумент для этого? - PullRequest
0 голосов
/ 07 ноября 2019

Я использую плагин PHP Inspections (EA Extended) с PhpStorm . По большей части это фантастика, но есть одна проверка, которая кажется несерьезной и делает код немного хуже. Предупреждение появляется сотни раз над моей кодовой базой.

[EA] Обтекание тела конструкций внутри блока (рекомендации PSR-2).

Вот типичный кодовый блок, который дважды вызывает предупреждение:

/**
 * @param array $queryArgs
 * @return array
 */
private function getRunArgs($queryArgs = []): array
{
    if ( empty( $queryArgs ) || !is_array( $queryArgs ) )
        return [];

    foreach ( $queryArgs as $key => $queryArg ) {
        if ( !empty( $queryArg ) )
            $args[$key] = $queryArg['value'] ?? $queryArg;
    }
    return $args ?? [];
}

PhpStorm «исправляет» предупреждение, добавляя скобки в один оператор if. Тот же код «исправлен»:

/**
 * @param array $queryArgs
 * @return array
 */
private function getRunArgs($queryArgs = []): array
{
    if ( empty( $queryArgs ) || !is_array( $queryArgs ) ) {
        return [];
    }

    foreach ( $queryArgs as $key => $queryArg ) {
        if ( !empty( $queryArg ) ) {
            $args[$key] = $queryArg['value'] ?? $queryArg;
        }
    }
    return $args ?? [];
}

Описание предупреждения от репозитория плагина GitHub :

Сообщает, если условия и циклы (if / elseif/ else, foreach / for / while / do-while) не имеет тел или пустых тел.

Конструкции должны иметь операторы для переноса операторов группы;стиль кода, позволяющий опускать групповые выражения для конструкций, считающихся плохой практикой.

Описание является тавтологией и не говорит мне, почему это плохая практика. Я не смог найти соответствующую рекомендацию PSR-2, хотя это не обязательно означает, что она не существует.

Каков логический аргумент для включения скобок в однострочные условия?

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