バグにつながりそうな怪しい ソースコードをチェックして教えてくれる php md。
コーディング時に必ず使うようにしておくとミスやバグが減るので是非使いましょう
composer global require phpmd/phpmd
echo 'export PATH=$HOME/.composer/vendor/bin:$PATH' >> .bash_profile
source .bash_profile
phpmd --version
(ソースファイル 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
次のパッケージをインストールします
SublimeLinter
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ファイルを開いているときに自動的にソースのおかしそうなところを指摘してくれます。
@todo をハイライト表示してくれるのでとても便利です。
PHPMDのエラーを回避したい場合は、ソースコードの クラス名またはメソッドの上に PHPDOC 形式で SuppressWarnings を指定することで エラー表示を回避することが出来ます。 指定できる文字列は (PHPMD.XXXXX) という形式で、XXXXXに指定する文字列はこちらのページから調べることが出来ます。
https://phpmd.org/rules/index.html
例)StaticAccess と ElseExpression 2つのエラーを表示しないようにします
/**
* @SuppressWarnings(PHPMD.StaticAccess)
* @SuppressWarnings(PHPMD.ElseExpression)
*/
public function hogehoge( $arg )
{
// code ...
}