PHP_CodeSnifferによるコーディング規約チェック
目次
PHP_CodeSnifferでコーディング規約チェックを行う
PHPでコーディングスタイルの規約チェックを行うためのライブラリである、PHP_CodeSnifferについてメモ
環境:PHP 7.4.8, squizlabs/php_codesniffer 3.6
PSRによるコーディング規約
PHPのコーディングスタイルはPHP-FIGという団体が定めたPSRという標準の中で定められている。
PSRのうち、PSR-1,PSR-12(PSR-2を拡張したもの)がコーディングガイドラインにあたり、様々なPHPフレームワークもこのPSRによる規約を採用している。
PHP-FIG (PHP Framework Interop Group)
https://www.php-fig.org/
PSR (PHP Standards Recommendations)
https://www.php-fig.org/psr/
PSR-1
https://www.php-fig.org/psr/psr-1/
PSR-12
https://www.php-fig.org/psr/psr-12/
PHP_CodeSniffer
PHP_CodeSnifferを利用することでコーディング規約への適合と違反を目視のレビューではなく、自動的に行うことができる。
インストール
packagist.org/packages/squizlabs/php_codesniffer
composerを使ってPHP_CodeSnifferをプロジェクトにインストールする。
composer.jsonのあるパスでコマンドを実行
composer require squizlabs/php_codesniffer
composer.json
{
"require": {
"squizlabs/php_codesniffer": "^3.6"
}
}
規約チェックの実行
PHP_CodeSnifferのインストールが完了したら、下記コマンドで対象のソースプログラムの規約チェックを実行する。
vendor/bin/phpcs --standard=PSR12 src/
例ではsrc配下の全てのプログラムの規約チェックを実行する。
(ファイルパスまで指定できる)
standardオプションでチェックに用いる規約名を指定する。
(上記の実行例ではPSR-12を規約チェックの元としている)
標準規約一覧の確認
インストール時にデフォルトで存在し、standardオプションで指定できる規約名一覧は下記コマンドで確認することができる。
vendor/bin/phpcs -i
(一覧表示)
The installed coding standards are PEAR, Zend, PSR2, MySource, Squiz, PSR1 and PSR12