コーディング規約のチェックを行う・整形する標準ツール(PHP CodeSniffer)の使い方
CakePHP3、CakePHP4以降のCakePHPには標準でPHP CodeSnifferが組み込まれています。
PHP_CodeSnifferとは
コーディング規約のチェックを行うコマンド
コーディング規約の通りに整形を行うコマンド
実行時にproc_openエラーが出る場合
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) 「最後のコミットをやり直し」でコミットをしなおす
といいです。
実行時にproc_openエラーが出る場合
コマンド実行時に次のようなエラーが出ることがあります。
In Process.php line 147: The Process class relies on proc_open, which is not available on your PHP i nstallation.
これは php.ini の disable_functions で proc_open の実行を制限されている場合に発生します。
例えば次のような指定です。
disable_functions = show_source, system, shell_exec, passthru, exec, popen, proc_open
読み込まれているiniファイルを調べるにはphpコマンドに--iniオプションを付けて実行します。
php --ini
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
が呼び出されています。
関連記事
- カラム一覧を取得する方法
- テンプレート(template)側でログイン情報を取得する方法
- フォームの必須エラーメッセージをHTML5標準にする方法、カスタマイズする方法
- 標準のHelperを拡張してカスタマイズする方法
- 国際化i18n(多言語化)
- URLをハイフン区切りからアンダーバー区切りやキャメルケースにする方法
- CakePHP4系の入手方法・インストール方法
- Composerコマンドでウクライナへのメッセージが表示されたことがあります
- Composerをインストールする方法と使い方
- Seedの実行順(外部キー制約などを先に実行させる方法) Foreign key violation
- Seedを実行した後にシーケンスを更新する方法(duplicate key valueエラー)
- SQLクエリー(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
- PHP Strict Standards: Non-static method と出る場合の対処法
- MySQLで文字化けを防ぐ方法
- CakePHPのDB接続情報設定
- ディレクトリ構成
- デバッグレベルを設定
- 『id』以外のプライマリキーのカラム名を使用する方法
- CakePHP
- キャッシュを有効にする
- CakePHPのエラーテンプレートの一覧
- CakePHP3系の入手方法・インストール方法
- CakePHP1系(CakePHP1.3)の入手方法・インストール方法
- データベーステーブルを参照しないページを作る
- ファイル読み込みPATHを設定
- CakePHP、Symfony、Zend Frameworkの比較
- TOPページはIndexControllerではない Cannot redeclare config()
スポンサーリンク