Nette Code Checker

Code Checkerは、ソースファイルに、目に見えない BOM、制御文字、壊れた文字コード、PHP・Latte・NEON・JSON のファイルの誤った構文といった形式上の欠陥がないかを調べ、自動的に直せます。

インストール

Composer で全体に入れます。

composer global require nette/code-checker

Composer の全体の bin のディレクトリが $PATH に入っていることを確かめてください。そうすれば code-checker のコマンドが、どのオペレーティングシステムでもどこからでも使えます。

あるいは単独のプロジェクトとして入れられます。

composer create-project nette/code-checker

PHP 8.0 以上が要ります。

使い方

既定では、Code Checker は読み取り専用のモードで動き、見つけた問題を知らせるだけです。

code-checker

実際にファイルを直すには --fix を足します。先にファイルの控えを取るか、あとで git diff で変更を見直せるように、きれいな作業ツリーで走らせてください。

code-checker --fix

調べる範囲を特定のパスに絞ったり、ファイルを飛ばしたり、構文だけの速い確認を走らせたりできます。

code-checker -d src --ignore "temp/*"
code-checker --only-syntax

読み取り専用のモードでは、すべて問題なければ終了コード 0 で、エラーや直せる問題を見つけると 1 で終わるので、CI の流れにきれいに収まります。

オプションの一覧です。

Usage: code-checker [options]

Options:
	-d <path>             Folder or file to scan (default: current directory)
	-i | --ignore <mask>  Files to ignore
	-f | --fix            Fix the files
	-l | --eol            Normalize line endings to the system default
	--only-syntax         Check syntax only (faster)
	--no-progress         Do not show progress dots
	--version             Show version

Code Checker がすること

  • Latteのテンプレートと .php.neon.json のファイルの構文を調べます
  • BOMを取り除きます
  • ファイルが正しい UTF-8 かを確かめます
  • 制御文字がないかを調べます
  • 形の崩れた phpDoc のコメント(たとえば /** @var の代わりの /* @var)を見つけます
  • declare(strict_types=1) の宣言がない PHP のファイルを知らせます
  • PHP、CSS、JS、TS のファイルでは字下げにタブを、YAML では空白を求めます
  • 行末の空白とファイルの終わりの空行を取り除きます
  • 改行をシステムの既定にそろえます(-l のパラメータ付きで)