いいえ。PHP_CodeSniffer は、PHP アプリケーションが正常に動作するかどうかを調べるツールではありません。 PHP_CodeSniffer が保証するのは、単に PHP のコードが規約に従っているということだけです。
たぶん必要じゃないでしょう。でも、コーディング規約に従っていることを 確実に保証したいのなら、一番簡単でお手軽なのは PHP_CodeSniffer を使用することです。 PHP_CodeSniffer は、人手によるコードレビュー作業の代わりとなるだけではありません。 PHP_CodeSniffer を使用すると、コードの正確さを調べるための コードレビューを常に用意しておくことができます。
注意 コーディング規約を使用することを推奨します。 これにより、コードの可読性および保守性があがります。 特に複数でアプリケーションを開発している場合に有用となります。 もしこれまでコーディング規約を使用したことがないのなら、 ぜひ使用を検討してください。
いいえ。PHP_CodeSniffer は実際にコードをパースするわけではありません。 したがって、実際のコードにパースエラーが含まれているかどうかは判断できません。 PHP_CodeSniffer が検知できるパースエラーもいくつか存在し、 パースエラーの疑いがあるため正確に sniff できない可能性のあるコードについては警告を発します。 しかし、実際にパースを行うわけではないので、 PHP_CodeSniffer は、パースエラーを含むコードをチェックすると 間違ったエラー数を返すことになるでしょう。
ティップ パースエラーをチェックするのは簡単です。PHP のコマンドラインインターフェイスで -l (小文字の L) オプションを使用しましょう。
$ php -l /path/to/code/myfile.inc No syntax errors detected in /path/to/code/myfile.inc
もちろんです。PHP_CodeSniffer は、コーディング規約を強制するための単なる枠組みです。 PHP_CodeSniffer にはサンプルのコーディング規約がいくつか含まれていますが、 これは独自の規約を持たないプロジェクトでも簡単に使用できるようにするためのものです。 独自の規約を作成したい場合は、 コーディング規約の作成のためのチュートリアル を参照ください。
あるエラーのおかげで別のエラーの存在が見つからなかったり、 修正の際に新たなエラーが発生したといった場合がありえます。 たとえば、PHP_CodeSniffer によって、 インライン IF 文には波括弧が必要だという指摘を受けたとしましょう。 これを修正した際の波括弧の位置がおかしければ、 PHP_CodeSniffer はまたエラーを報告します。
すべてのエラーが解消されるまで、常に PHP_CodeSniffer を実行するようにしましょう。 PHP_CodeSniffer が推奨する変更を行った場合は、必ずもう一度 PHP_CodeSniffer を実行し、新たなエラーが発生していないことを確認します。
PHP_CodeSniffer は、 あなたのコードがコーディング規約に反していないかどうかを確実にチェックできると確信しています。 ただ、チェックしたアプリケーションのコードを レビューなしにいきなり変更してしまうことはできません。 ソースコードをリリースする前に PHP_CodeSniffer が行った変更内容をチェックする手間を考えてみましょう。 自分で変更したほうがずっと安心しませんか?
手動で変更することには、以下のような利点があります。
開発者がコーディングについて学ぶことができ、将来間違いを犯す可能性が低くなります。
開発者が、PHP_CodeSniffer が正しく動作していることを確認できます。
開発者が、そのコーディング規約が自分のコードにうまくあてはまるかどうかを判断できます。
もし PHP_CodeSniffer がうまい具合にコードを変更してくれることを期待しているのなら、 コーディング規約をしっかり読んでそれをきちんと守るようにしましょう。
注意 変更内容がどんなに些細なものであっても、 それをリポジトリにコミットしたりリリースしたりする前に必ずテストを行うようにしましょう。 PHP_CodeSniffer の提案による変更も同様です。 たとえ無意味に見えたとしても、必ずテストを行いましょう。
PHP_CodeSniffer は、PHP の組み込みのトークナイザ関数 を使用して PHP のコードをパースします。