コーディング規約のチェックを行う・整形する標準ツール(PHP CodeSniffer)の使い方
CakePHP3、CakePHP4以降のCakePHPには標準でPHP CodeSnifferが組み込まれています。
PHP_CodeSnifferとは
コーディング規約のチェックを行うコマンド
コーディング規約の通りに整形を行うコマンド
composer.jsonの該当箇所
設定ファイル
コマンドの実体
PHP_CodeSnifferとは
PHP_CodeSnifferとは、
・コード規約のチェックを行うツール
・コード規約の通りに整形するツール
です。
コーディング規約のチェックを行うコマンド
$ composer cs-check
を実行することで
phpcs --colors -p src/ tests/
が実行されて、src/ tests/以下をチェックしてくれます。
コーディング規約の通りに整形を行うコマンド
$ composer cs-fix
を実行することで
phpcbf --colors -p src/ tests/
が実行されて、src/ tests/以下を整形してくれます。
自動で整形してくれますが、まれにおかしなところがあります。
phpcbfを直接実行する場合は --dry-runオプションで事前にどこが整形されるかを確認することができます。
Gitでコード管理をしているなら
(1) 一度コミットをして
(2) cs-fixを実行し
(3) 差分を確認したのち
(4) 「最後のコミットをやり直し」でコミットをしなおす
といいです。
composer.jsonの該当箇所
composer.json
{ …… … …… "require-dev": { "cakephp/bake": "^2.6", "cakephp/cakephp-codesniffer": "^4.5", "cakephp/debug_kit": "^4.5", "josegonzalez/dotenv": "^3.2", "phpunit/phpunit": "~8.5.0 || ^9.3" }, …… … …… "scripts": { "post-install-cmd": "App\\Console\\Installer::postInstall", "post-create-project-cmd": "App\\Console\\Installer::postInstall", "check": [ "@test", "@cs-check" ], "cs-check": "phpcs --colors -p src/ tests/", "cs-fix": "phpcbf --colors -p src/ tests/", "stan": "phpstan analyse", "test": "phpunit --colors=always" }, "prefer-stable": true, "config": { "sort-packages": true, "allow-plugins": { "cakephp/plugin-installer": true, "dealerdirect/phpcodesniffer-composer-installer": true } } }
設定ファイル
PHP_CodeSnifferの設定ファイル
vendor/squizlabs/php_codesniffer/CodeSniffer.conf
から、CakePHPのコーディングルール設定ファイル
vendor/cakephp/cakephp-codesniffer/CakePHP/ruleset.xml
が呼び出されています。
コマンドの実体
vendor/bin/phpcs
から
vendor/squizlabs/php_codesniffer/bin/phpcs
が呼び出されています。
vendor/bin/phpcbf
から
vendor/squizlabs/php_codesniffer/bin/phpcbf
が呼び出されています。
関連記事
- Seedの実行順(外部キー制約などを先に実行させる方法) Foreign key violation
- Seedを実行した後にシーケンスを更新する方法(duplicate key valueエラー)
- SQLクエリーを直接実行する方法
- PostgreSQLでERROR: duplicate key value violates unique constraint "hoge_pkey" DETAIL: Key (id)=(10) already exists.と出る場合
- PostgreSQLで自動採番をするシーケンス(sequence)とは【AUTO INCREMENT】
- Apacheで所有権や書き込み権限があるにも関わらずPermissions deniedが出る場合
- CakePHP3
- CakePHP
- CakePHPのバージョンごとのシステム要件
- AuthコンポーネントのパスワードをCakePHPを使用せずハッシュ化する方法(パスワードの生成ルール)
- プライマリキーIDを連番数字ではなく推測しにくい文字列にする方法
- CakePHPでカラムを比較してSELECTする方法
- action名にlistは使えない listを使う方法
- MySQLで文字化けを防ぐ方法
- デバッグレベルを設定
- 『id』以外のプライマリキーのカラム名を使用する方法
- ログイン認証処理をする方法
- [CakePHPのバグ]キャッシュ処理でunserializeエラーが発生する
- PHP Strict Standards: Non-static method と出る場合の対処法
- CakePHP
- [CakePHPのバグ]キャッシュ処理でunlinkエラーが発生する
- CakePHPのDB接続情報設定
- ファイル読み込みPATHを設定
- 1つのフィールドにバリデーションエラーを1つだけ表示させる方法
- セキュリティレベルの設定
- キャッシュを有効にする
- CakePHPのエラーテンプレートの一覧
- ディレクトリ構成
- 複数のデータベースを切り替える方法(別データベースを使用する)
- TOPページはIndexControllerではない Cannot redeclare config()
- データベーステーブルを参照しないページを作る
- CakePHP、Symfony、Zend Frameworkの比較
スポンサーリンク