Code Snifferのエラー文メモ


久しぶりにCode Snifferで引っかかっているところを直そうと思うと忘れがちなのでまとめました。

## Only one argument is allowed per line in a multi-line function call

複数行で関数を呼び出している際に引数が横並びだと指摘されます。

### 修正前

```
return $query->where(
    'language_type', $lang_type
);
```

### 修正後

```
return $query->where(
    'language_type', 
    $lang_type
);
```

## Multi-line function call not indented correctly; expected X spaces but found Y

複数行に渡るfunctionにてインデントが間違っていると指摘されます。

### 修正前

```
return $query->where(
    'language_type', 
    $lang_type
    );
```

### 修正後

```
return $query->where(
    'language_type', 
    $lang_type
);
```

## Line indented incorrectly; expected X spaces, found Y.

インデントが間違っていると指摘されます。

### 修正方法

"expected X spaces"の値に合わせてインデントを修正

## Blank line found at start of control structure

if文やfunctionの始まりの"{"の後に不要な空行がある場合に指摘されます。

### 修正前

```
if (!\Auth::check() && !\Auth::attempt()) {

    if ($request->ajax()) {
        return false;
    } else {
        // 戻りURL付きでMembersにリダイレクト
        $url = config('app.url').$request->getRequestUri();

        return redirect(config('app.test_url').'?done='.rawurlencode($url));
    }
}
```

### 修正後

```
if (!\Auth::check() && !\Auth::attempt()) {
    if ($request->ajax()) {
        return response('Unauthorized.', 401);
    } else {
        // 戻りURL付きでMembersにリダイレクト
        $url = config('app.url').$request->getRequestUri();

        return redirect(config('app.test_url').'?done='.rawurlencode($url));
    }
}
```

## Expected 1 space after comma in function call; X found

カンマ後に1つ以上のスペースがあると指摘されます。

### 修正前

```
Route::get('',       ['as' => 'home',   'uses' => 'HomeController@index']);
```

### 修正後

```
Route::get('', ['as' => 'home',   'uses' => 'HomeController@index']);
```

## There must be a single space between the closing parenthesis and the opening brace of a multi-line function declaration; found 0 spaces.

閉じ括弧と括弧の始まりの間にスペースが無いと指摘されます。

### 修正前

```
$article = \DB::transaction(function () use (
    $input,
    $default,
    $language_type,
    $constants
){
```

### 修正後

```
$article = \DB::transaction(function () use (
    $input,
    $default,
    $language_type,
    $constants
) {
```

## The closing brace for the class must go on the next line after the body.

classの閉じ括弧までに余計な行が挟まると指摘されます。

### 修正前

```
    /**
     *
     * Test
     *
     * @param void
     * @return boolean
     */
    public function testTest()
    {
        return true;
    }

}
```

### 修正後


```
    /**
     *
     * Test
     *
     * @param void
     * @return boolean
     */
    public function testTest()
    {
        return true;
    }
}
```

## Opening brace of a class must be on the line after the definition.

classの始まりの括弧の位置がclassを定義する行の次の行になっていない場合に指摘されます。

### 修正前

```
class Test extends Model {

    ........

}
```

### 修正後

```
class Test extends Model
{
    ........
}
```

## Spaces must be used to indent lines; tabs are not allowed.

インデントにタブが使われていると指摘されます。

### 修正方法

該当する行のタブをスペースに修正

## Expected 1 space after closing parenthesis; found 9

特にif文やforeach文で、閉じ括弧の後に一つ半角スペースを入れて中括弧等の記述を始めるべきところがそうなっていないと指摘されます。

### 修正前

```
if ($test == true)
{
    .....
}
```

### 修正後

```
if ($test == true) {
    .....
}
```

## Whitespace found at end of line

行の最後に余分なスペースが入っていると指摘されます。

### 修正方法

行の最後にあるスペースを削除

## Incorrect spacing between argument "$XXX" and equals sign; expected 1 but found X.

デフォルト引数値の指定する際にスペースの数が1つ以外になっていると指摘されます。

※ "Incorrect spacing between default value and equals sign for argument "$XXX"; expected 1 but found X." も同時にエラーとして発生するかと思います。

### 修正前

```
private function test($string, $delimiter='/')
{
    .....
}
```

### 修正後

```
private function test($string, $delimiter = '/')
{
    .....
}
```

## Expected 1 newline at end of file; X found.

ソースの末尾に空行が無いと指摘されます。

### 修正方法

ソースの末尾に空行を追加

## Expected 1 space after FUNCTION keyword; X found.

"function"の記述の後にスペースが一つ足りないと指摘されます。

### 修正前

```
function($test) {
    ......
})
```

### 修正後

```
function ($test) {
    ......
})
```

## Space found before comma in function call.

function前のカンマの前に不要なスペースがあると指摘されます。

### 修正前

```
) , function ($test) {
    ......
})
```

### 修正後

```
), function ($test) {
    ......
})
```

## Opening brace should be on the same line as the declaration.

functionの開始の括弧が"function"の記述をまたいでしまうと指摘されます。

### 修正前

```
function ($test)
{
    ......
})
```

### 修正後

```
function ($test) {
    ......
})
```