什么是phpmd以及如何使用它?

diE*_*cho 11 phpmd composer-php sublimetext3 ubuntu-14.04

我有Ubuntu 14.04 + Sublime text 3并安装了phpcs软件包

我安装了附加件phpcsphp-cs-fixer 在我的系统上

来自这个博客

我发现phpmd(PHP Mess Detector)也是一个必需的库,因此根据官方php md 页面上的给定指令使用替代方法安装phpmd 从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
Run Code Online (Sandbox Code Playgroud)

但现在我在终端上写字

  phpmd /opt/lampp/htdocs/myproject, myfile.php 
Run Code Online (Sandbox Code Playgroud)

phpmd:找不到命令

主目录上有phpmd文件夹,没有任何错误.

composer.json根据github上的建议,我在项目文件夹中创建了核心PHP创建的本地项目.

请告诉我是什么意思

然后在项目中安装Composer (或直接下载composer.phar):

Jak*_*las 30

我认为问题是你已经在本地目录中安装了phpmd,但是你正在尝试使用它,就好像它是全局安装的一样.

参考网站上的安装说明实际上不能更清楚.既然你已经安装了phpcs和php-cs-fixer,并且那些适用于你,那么就按照phpmd的类似说明进行操作.这些都是PHP项目,并以类似的方式安装.

无论如何,要使用phpmd作为全局命令,您有几种选择.

Github上

像你一样克隆github存储库,并将phpmd bin目录添加到你的PATH变量中.

全球作曲家安装

使用composer global命令全局安装phpmd.您还需要确保作曲家的bin目录在PATH.默认是这样的~/.composer/vendor/bin.

composer global require phpmd/phpmd
Run Code Online (Sandbox Code Playgroud)

这个命令将全局安装phpmd,只要~/.composer/vendor/bin在你的内容中,PATH你就可以通过简单的调用来调用它phpmd.

在作曲家的文档中对它进行了很好的解释:https://getcomposer.org/doc/03-cli.md#global

下载phar存档

这是你能做的最简单的事情.只需转到phpmd 版本,选择最新版本并下载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
Run Code Online (Sandbox Code Playgroud)

Docker容器

首先,使用PHP的静态分析工具获取docker镜像:

git pull jakzal/phpqa
Run Code Online (Sandbox Code Playgroud)

图像提供的工具之一是phpmd.下面的命令将在docker容器中运行phpmd,并将当前工作目录挂载为/ project.

docker run -it --rm -v $(pwd):/project -w /project jakzal/phpqa \
    phpmd src text cleancode,codesize,controversial,design,naming,unusedcode
Run Code Online (Sandbox Code Playgroud)