PHPプログラムに関する各種メモ書き

PHPMD で PHPソースのチェックを行う

● PHPMDとは?

バグにつながりそうな怪しい ソースコードをチェックして教えてくれる php md。
コーディング時に必ず使うようにしておくとミスやバグが減るので是非使いましょう

● PHPMDのインストール

1. composer コマンドからインストールします

composer global require phpmd/phpmd

2. シェルが bash の場合は次のコマンドでパスを追加しておきます

echo 'export PATH=$HOME/.composer/vendor/bin:$PATH' >> .bash_profile
source .bash_profile

3. phpmd コマンドを入力してパスが通ってるか確認します

phpmd --version

● PHPMDで phpソースコードのチェックを行う

(ソースファイル myfile.php チェックしテキストデータで結果を受け取る。チェックする項目は
codesize,controversial,design,naming,unusedcode)

phpmd  myfile.php  text  codesize,design,naming,unusedcode

オプションの意味

codesize	コードが大きすぎないかチェック
controversial	命名規則など議論の余地がある部分を検出するチェック
design	設計上の関連のチェック
naming	変数名など名前関連のチェック
unusedcode	使われていない変数のチェック
cleancode	綺麗なコードかチェック

書式は以下の通りです

phpmd (phpファイル名) ( text または xml または html ) (オプションをカンマで区切る)

引用 : https://simple-it-life.com/?p=761

● エディタ SublimeTextで PHPMDを使う

次のパッケージをインストールします

SublimeLinter
SublimeLinter-phpmd

・SublimeLinter-phpmdの設定方法

【Package Settings】→【SublimeLinter】→【Settings - User】に記述があります。

設定例: (ルールセットから controversial, design, naming を取り除いています)

    "linters": {
	    "phpmd": {
	        "@disable": false,
	        "args": [],
	        "excludes": [],
	        "delay": 0.75,
	        "rulesets": "cleancode,codesize,unusedcode"
	    }
	}

また反応速度が速いとオートコンプリートと機能がバッティングしてしまうので、SublimeLinterのDelayの値を少し多めにしてやると良いと思います

設定例: ディレイ値を増やす

        "delay": 0.75,

これで PHPファイルを開いているときに自動的にソースのおかしそうなところを指摘してくれます。

合わせて「SublimeLinter-annotations」もインストールしておきましょう

@todo をハイライト表示してくれるのでとても便利です。

● PHPMDにエラー指摘してほしくない項目をソースコードに直接記述する

PHPMDのエラーを回避したい場合は、ソースコードの クラス名またはメソッドの上に PHPDOC 形式で SuppressWarnings を指定することで エラー表示を回避することが出来ます。 指定できる文字列は (PHPMD.XXXXX) という形式で、XXXXXに指定する文字列はこちらのページから調べることが出来ます。

https://phpmd.org/rules/index.html

例)StaticAccessElseExpression 2つのエラーを表示しないようにします

	/**
	 * @SuppressWarnings(PHPMD.StaticAccess)
	 * @SuppressWarnings(PHPMD.ElseExpression)
	 */
	public function hogehoge( $arg )
	{
		// code ...
	}

関連エントリー

No.1120
12/11 09:33

edit

エラー対処
composer