skillup

技術ブログ

PHP

phpmdによるコードチェック

投稿日:2017年4月23日 更新日:

現在のプロジェクトですが、コードレビューなどをされる環境にはないため、一人で書いていると自然と規約とずれた書き方になっていることもあります。

規約通りに書こう、書こうと思っていてもなかなかその通りに書くことは大変です。そんな時はコードレビューを自動でチェックしてくれるツールなどを使うのが便利です。phpにはphpmdというツールがあり実装上の問題点などを検出してくれるツールです。

インストール

以前はpearなどでインストールもできていましたが、現在ではcomposerを使ってinstallをすることが一般的でしょう。

下記のようにcomposer.jsonにかいてアップロードすることが一般的です。

composerに書いて、installすればvendorの下には入ります。ただpathをとおすために下記のようにシンボリックリンクを張ると便利です。

使い方

あとは実際のコードのチェックを行います。

コマンドの意味ですが、

phpmd チェックしたいPHPファイルパス [レポートフォーマット(text or xml or html)] [チェック項目 カンマ区切りで複数可能]

具体的なチェック項目ですが、下記のような意味です。

  • cleancode: elseを使わず、staticアクセスしないなどを検知するツール
  • codesize:循環的複雑度などコードサイズ関連部分を検出するルール
  • controversial:キャメルケースなど議論の余地のある部分を検出するルール
  • design:ソフトの設計関連の問題を検出するルール
  • naming:長すぎたり、短すぎたりする名前を検出するルール
  • unusedcode:使われていないコードを検出するルール

上記では全て入れていますが・・・コマンドを実行すると下記のようなメッセージが出力されます。

参考リンク

phpmdについて

PHPの静的コード解析ツール『PHPMD』を使ってみた。

phpmd公式

https://phpmd.org/

シンボリックリンクについて

lnコマンドについて詳しくまとめました 【Linuxコマンド集】

-PHP
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

mb_convert_kanaによる半角濁点の処理

PHPネタです。 濁点を処理するときに、カナ本体と濁点が分離していることが多々あります。 一般的には濁点と文字自体を混合させるケースのほうが多いので統一する必要性があるでしょう。 これを1文字にまとめ …

no image

nginx上でのcakePHP

cakePHP上をCentOS,nginx上で公開するときのメモなどを。 cakeのversionは2.5です。 /var/www/html/sampleapp直下にプログラムを配置するものとします。 …

no image

Traitによるコードの再利用

PHPでは多重継承が禁じられて(親は1つしかもてない)いるため、共通性のあるコードを書こうと思った時に親にかいていない場合限界があります。 そんな時に使えるのがTraitという考え方で、これを使います …

no image

phpQueryを使ったスクレイピングに関して

以前、スクレイピングに関してはこのエントリーでも紹介したとおり、phpに標準で入っているDOMDocumentを使う方法が一番楽です。 ところがデータによってはXMLで解析するため目的とする要素を取得 …

no image

phpenv5.3+php-fpm

レガシーなプロジェクトではいまだにPHP5.3なんかを使うケースがあったりします。 これがCentOS6だったらyumでphp5.3とかだったらいいんですが、サーバーはCentOS7だったりするとなか …