背景とか
レガシーシステムのメンテとかで要改善点を洗い出すために静的解析ツール導入を検討。
PHP5.4から使えるEdgedesignCZ/phpqaを見つけたので導入してみた。
環境
- HostOS:Mac Mojave
- Docker for Mac
- GuestOS:CentOS7.3
- Dockerコンテナ内でPHP5.4 + Composerの環境が作れている前提
構築
プロジェクトのコンテナ内で
composer require edgedesign/phpqa --dev
でも行けるが、使えるものは使いたいので
composer.jsonに以下を記述し
"require-dev": {
"edgedesign/phpqa": "^1.20",
"friendsofphp/php-cs-fixer": "^2.2",
"jakub-onderka/php-parallel-lint": "^1.0",
"vimeo/psalm": "^0.2.66",
"sensiolabs/security-checker": "^4.1"
}
composer install
を実行する。
完了したらば以下のコマンドを実行して、静的解析にかける(hoge/fuga
は任意のディレクトリ)
vendor/edgedesign/phpqa/phpqa --analyzedDirs hoge/fuga --report --tools phpcs,phpmd,phpcpd,parallel-lint,phpmetrics,phploc,pdepend
psalm
については読み込むxmlのpathが間違っているので、使う場合はpathを修正してください。下記のリンク参照。
psalm fails because of missing config file
参考
EdgedesignCZ/phpqa
psalm fails because of missing config file