4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHP静的解析ツール集phpqaを使ってみる

Last updated at Posted at 2019-03-25

背景とか

レガシーシステムのメンテとかで要改善点を洗い出すために静的解析ツール導入を検討。
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

こんな感じの結果がでる。エラー多すぎて笑えない。
スクリーンショット 2019-03-25 15.10.12.png

スクリーンショット 2019-03-25 15.17.22.png スクリーンショット 2019-03-25 15.18.54.png スクリーンショット 2019-03-25 15.18.22.png スクリーンショット 2019-03-25 15.19.44.png スクリーンショット 2019-03-25 15.20.25.png スクリーンショット 2019-03-25 15.20.49.png

psalmについては読み込むxmlのpathが間違っているので、使う場合はpathを修正してください。下記のリンク参照。
psalm fails because of missing config file

参考

EdgedesignCZ/phpqa
psalm fails because of missing config file

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?