phpcsのルール一覧を作ってみた・スペース編

Author:

php codesniferというツールがあります。
ソースコードの書き方を揃えようね、というチェックツールですね。
これ自分達のチームに応じてルールを設定できるのだけど、ルールの作り方が分かりづらい。
ってことで、色々調べてみました。

phpcsのルール一覧を作ってみた・スペース編

基本的な書き方

ruleset
ここの書き方を参考にしましょう。
で、ここのデフォルトルールについて以下説明していきます。
まずはスペース関係から。

Generic.WhiteSpace.DisallowSpaceIndent、Generic.WhiteSpace.DisallowTabIndent

スペースインデント/タブインデントを許可しません。

function aaa() {
    return 0;
}

ここのインデントですね。

 3 | ERROR | [x] Tabs must be used to indent lines; spaces are not allowed

Generic.WhiteSpace.ScopeIndent

インデントの数を調整します。
デフォルトは4。

function aaa() {
   return 0;
}

スペースが4つないとエラーになります。

 4 | ERROR | [x] Line indented incorrectly; expected at least 4 spaces, found 3

Generic.Formatting.NoSpaceAfterCast、Generic.Formatting.SpaceAfterCast

キャストの後にスペースを入れるかどうかを決めます。

function aaa() {
    $abc = 1.0;
    return (int) $abc;
}

この(int)の後のスペースですね。

 4 | ERROR | [x] A cast statement must not be followed by a space

Squiz.WhiteSpace.CastSpacing

キャストの中のスペースを入れないようにします。

function aaa() {
    $abc = 1.0;
    return ( int)$abc;
}
 8 | ERROR | [x] Cast statements must not contain whitespace; expected "(int)" but found "( int)"

Generic.Formatting.SpaceAfterNot

not(!)の後のスペースを入れるかどうかを決めます。

function aaa($abc) {
    return ! $abc;
}

てかスペース入れると分かりづらくない?

 4 | ERROR | [x] There must be a single space after a NOT operator; 0 found

Generic.Arrays.ArrayIndent

2行目にまたがるarrayのスペースを決めます。

$aaa = [
    1,
  2,
   3,
];

こういう場合に警告されます。

 4 | ERROR | [x] Array key not indented correctly; expected 12 spaces but found 16

Squiz.WhiteSpace.ControlStructureSpacing

if文とかブロック要素のあとは一行開けましょうってやつ。

if ($aaa) {
    return;
}
$abc = 1;

個人的にはどうでもいい気がする。

 18 | ERROR | [x] No blank line found after control structure

Squiz.WhiteSpace.FunctionClosingBraceSpace

閉じカッコの前に空行があるよという警告。

if ($aaa) {
    return;

}

$abc = 1;

まさにどうでもいい警告です。

 20 | ERROR | [x] Expected 1 blank line before closing function brace; 0 found

Squiz.WhiteSpace.FunctionSpacing

関数の前は2行開けましょう、という警告。



function aaa() {

}
2行なんだ。
 2 | ERROR | [x] Expected 2 blank lines before function; 0 found

Squiz.WhiteSpace.LanguageConstructSpacing.IncorrectSingle

LanguageConstructってのはechoとかprintとか。
echoの後のスペースは1文字にしろと。

echo  123;
 3 | ERROR | [x] Language constructs must be followed by a single space; expecte
d 1 space but found

Squiz.WhiteSpace.LogicalOperatorSpacing

LogicalOperatorとは&&とか||のこと。

if ($a||$b) {

前後にスペースを入れましょう。

 5 | ERROR | [x] Expected 1 space after logical operator; 0 found

Squiz.WhiteSpace.MemberVarSpacing

クラスとメンバの間に空白行が必要です。

class aaa {
public $abc;
 3 | ERROR | [x] Expected 1 blank line(s) before first member var; 0 found

Squiz.WhiteSpace.ObjectOperatorSpacing

static関数の::ですね。

Sample :: func();
 9 | ERROR | [x] Space found before object operator

Squiz.WhiteSpace.OperatorSpacing

これは=とか< とか&を表します。

$a=1;

 9 | ERROR | [x] Expected 1 space before "="; 0 found

Squiz.WhiteSpace.PropertyLabelSpacing

これはjsだけに動くSniff。:のスペースを表します。

var a:1;
 2 | ERROR | [x] There must be a single space after the colon in a property/label declaration

Squiz.WhiteSpace.ScopeClosingBrace

閉じカッコです。

  }
 5 | ERROR | [x] Closing brace indented incorrectly; expected 0 spaces, found 2

Squiz.WhiteSpace.ScopeKeywordSpacing

スコープを表すキーワード、staticとかですね。
publicだけだと何も言われません。

public static   function aaa()
 3 | ERROR | [x] Scope keyword "static" must be followed by a single space; found 3

Squiz.WhiteSpace.SemicolonSpacing

その名の通りセミコロンです。

$a = 1 ;
 3 | ERROR | [x] Space found before semicolon; expected "1;" but found "1 ;"

Squiz.WhiteSpace.SuperfluousWhitespace

末尾のスペース。どうでも良すぎる。

$a = 1;   
 3 | ERROR | [x] Whitespace found at end of line

つづく

Facebook にシェア
Pocket

コメントを残す