IntelliJ(PhpStorm)でPHP_CodeSnifferを使う
前提
- IntelliJ IDEA(ULTIMATE 2018.2)
- 多分PhpStormも似たような感じ?
- Mac
- メモ程度
やりたいこと
- IntelliJ(ローカル環境)で、PHPコードの静的解析をしたい
やること
- (まだであれば)Macにcomposerを入れる
- composerでPHP_CodeSnifferをinstall
- IntelliJ側を設定
- おしまい
composer
- 多分PhpStormも似たような感じ?
- IntelliJ(ローカル環境)で、PHPコードの静的解析をしたい
やること
- (まだであれば)Macにcomposerを入れる
- composerでPHP_CodeSnifferをinstall
- IntelliJ側を設定
- おしまい
composer
さっくりと brew
でインストールしておきます。
$ brew install composer
// 入ったかな
$ which composer
/usr/local/bin/composer
// 設定の確認
$ composer global config --list
[bin-dir] {$vendor-dir}/bin (/Users/me/.composer/vendor/bin)
[home] /Users/me/.composer
configをみると、compserがglobal
で利用するディレクトリが確認できます。
.composer/
に composer.jsonなどが生成され、ライブラリなどは .composer/vendor/bin
に入る、となっていました。
PHP_CodeSniffer
Installation
- GitHubのREADMEの通りcomposerを使ってインストール
$ composer global require "squizlabs/php_codesniffer=*"
Changed current directory to /Users/me/.composer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing squizlabs/php_codesniffer (3.3.2): Downloading (100%)
Writing lock file
Generating autoload files
// 入ったかな
$ ls -lah /Users/me/.composer/vendor/bin
phpcbf -> ../squizlabs/php_codesniffer/bin/phpcbf
phpcs -> ../squizlabs/php_codesniffer/bin/phpcs
- とりあえず最新を使うようにしてみる(バージョン指定したければご自由に
3.*
など
- 特定のプロジェクトで使う訳ではないので
global
で入れてしまう
IntelliJ側の設定
$ composer global require "squizlabs/php_codesniffer=*"
Changed current directory to /Users/me/.composer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing squizlabs/php_codesniffer (3.3.2): Downloading (100%)
Writing lock file
Generating autoload files
// 入ったかな
$ ls -lah /Users/me/.composer/vendor/bin
phpcbf -> ../squizlabs/php_codesniffer/bin/phpcbf
phpcs -> ../squizlabs/php_codesniffer/bin/phpcs
3.*
などglobal
で入れてしまうPreferenceより、
-
Editor > Inspections > PHP Code Sniffer validation
にチェックを入れる -
Languages & Frameworks > PHP > Code Sniffer
の ConfigurationをLocal
、横の[...]
から先ほどのphpcs本体を指定する- /Users/me/.composer/vendor/bin/phpcs
- 選択Finderで不可視ディレクトリが出ない場合は、選択Finder画面で
Command + Shift + G
をやるとパスを直接入力できるダイアログが出るから便利 (参考)
結果
指摘事項が大量発生して悲しい気持ちになった
おまけ
CakePHPのCodesnifferのルール適用
$ composer global require "cakephp/cakephp-codesniffer=*"
$ composer global require "cakephp/cakephp-codesniffer=*"
Editor > Inspections > PHP Code Sniffer validation
の Coding standard
欄を 「Custom」とし横の [...]
から、
/Users/me/.composer/vendor/cakephp/cakephp-codesniffer/CakePHP/ruleset.xml
のようにruleset.xmlを指定したところCakePHPのルールセットが適用されるようになりました。
参考
Configuring PHP Code Sniffer manually の方を試しました。
IntelliJでComposerの設定をして Available Packages
から導入する公式おすすめ?のやり方が良いのかもしれませんが特に試していません(IDEを使いこなせていないだけ)
ルールセットはおいおい調整。
メモ程度の記事なので、もし記事内容がおかしかったらご指摘くださいませ。
Author And Source
この問題について(IntelliJ(PhpStorm)でPHP_CodeSnifferを使う), 我々は、より多くの情報をここで見つけました https://qiita.com/yotsak/items/b238ff64d4114c1a9dd9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .