web-dev-qa-db-ja.com

phpmdとは何ですか?その使用方法は?

Ubuntu 14.04 + Sublime text 3があり、phpcsパッケージがインストールされています

さらに、システムにphpcsphp-cs-fixerをインストールしました

から このブログ

phpmdPHP Mess Detector)も必要なライブラリであることがわかったので、インストールしましたphpmd公式php md ページの別の方法githubリポジトリからすべてが終了しました。

:~/phpmd$ curl -s http://getcomposer.org/installer | php
#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /home/keshav/phpmd/composer.phar
Use it: php composer.phar

でも今はターミナルに書くと

  phpmd /opt/lampp/htdocs/myproject, myfile.php 

phpmd:コマンドが見つかりません

ホームディレクトリにphpmdフォルダがあり、エラーは発生していません。

github で提案されているように、コアPHP create composer.jsonをプロジェクトフォルダーに作成します。

意味を教えてください

次に、Composerをプロジェクトにインストールします(またはcomposer.pharを直接ダウンロードします)。

11
diEcho

問題は、phpmdをローカルディレクトリにインストールしたことだと思いますが、グローバルにインストールされているかのように使用しようとしています。

参照されているサイトでのインストール手順は、実際には明確にすることはできません。すでにphpcsとphp-cs-fixerをインストールしていて、それらが機能するので、phpmdの同様の手順に従ってください。これらはすべてPHPプロジェクトであり、同様の方法でインストールされます。

とにかく、phpmdをグローバルコマンドとして使用するには、いくつかのオプションがあります。

Github

githubリポジトリ のクローンを作成し、phpmd binディレクトリを PATH変数 に追加します。

グローバルcomposerインストール

composer global command )を使用してphpmdをグローバルにインストールします。また、composerのbinディレクトリがPATHにあることを確認する必要があります。デフォルトでは次のようになります。 ~/.composer/vendor/bin

composer global require phpmd/phpmd

このコマンドはphpmdをグローバルにインストールし、~/.composer/vendor/binPATHに入るとすぐに、phpmdを呼び出すだけで呼び出すことができます。

これは、作曲家のドキュメントで非常によく説明されています: https://getcomposer.org/doc/03-cli.md#global

pharアーカイブをダウンロードします

これはあなたができる最も簡単なことです。 phpmd releases最新のものを選択 に移動し、 pharアーカイブ をダウンロードするだけです。

Pharファイルを好きな場所に置いてください。 PATHにある必要があることを覚えておいてください。名前を変更して、.phar拡張子をスキップすることもできます。

例えば:

wget http://static.phpmd.org/php/2.1.3/phpmd.phar
Sudo mv phpmd.phar /usr/bin/phpmd
Sudo chmod +x /usr/bin/phpmd

Dockerコンテナ

まず、 PHPの静的分析ツール でDockerイメージをフェッチします。

git pull jakzal/phpqa

イメージによって提供されるツールの1つはphpmdです。以下のコマンドは、Dockerコンテナーでphpmdを実行し、現在の作業ディレクトリを/ projectとしてマウントします。

docker run -it --rm -v $(pwd):/project -w /project jakzal/phpqa \
    phpmd src text cleancode,codesize,controversial,design,naming,unusedcode
30
Jakub Zalas

composerベースのインストールを使用すると、./binディレクトリ内の./vendorsディレクトリにインストールされます。したがって、私にとっては、プロジェクトのルートディレクトリと比較して、次のようになりました。

./vendor/bin/phpmd

そして、./vendor/bin/phpmd . text codesizeを実行することで、プロジェクトのルートから実行することができました。 (私はまだ有用な出力を得ていませんが、別の問題です)

3
Uberbrady