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

Posted

技术标签:

【中文标题】什么是 phpmd 以及如何使用它?【英文标题】:what is phpmd and how to use it? 【发布时间】:2015-03-13 13:01:22 【问题描述】:

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

另外我在我的系统上安装了phpcsphp-cs-fixer

来自this blog

我发现 phpmd (PHP Mess Detector) 也是必需的库,因此请按照@987654322 上的说明安装 phpmd @page 使用替代方法来自 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 上的本地项目 composer.json

请告诉我是什么意思

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

【问题讨论】:

"phpmd (PHP Mess Detector) 也是一个必需的库" - 需要什么?你到底想做什么? phpcs必填,博客中提到过,链接写在Question中 phpcs 不需要 phpmd。这些是单独的工具。 @JakubZalas 感谢您的澄清。现在你能告诉我如何安装并让它在我的 ubuntu 上运行吗? 【参考方案1】:

我认为问题在于您已将 phpmd 安装在本地目录中,但您尝试将其用作全局安装。

引用站点上的安装说明真的再清楚不过了。由于您已经安装了 phpcs 和 php-cs-fixer,并且它们对您有用,因此只需遵循 phpmd 的类似说明。这些都是PHP项目,安装方式类似。

无论如何,要将 phpmd 用作全局命令,您有多种选择。

Github

像你一样克隆github repository并将phpmd bin目录添加到your PATH variable。

全局作曲家安装

使用 composerglobal command 全局安装 phpmd。您还需要确保 composer 的 bin 目录位于 PATH 中。默认为~/.composer/vendor/bin

composer global require phpmd/phpmd

此命令将全局安装 phpmd,并且只要 ~/.composer/vendor/bin 在您的 PATH 中,您就可以通过简单地调用 phpmd 来调用它。

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

下载 phar 存档

这是你能做的最简单的事情。只需转到 phpmd releases、choose the latest 并下载 the phar archive。

将 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 容器

首先,使用static analysis tools for PHP获取docker镜像:

docker pull jakzal/phpqa

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

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

【讨论】:

您还需要确保 composer 的 bin 目录是 int PATH。 ?? 您需要将其添加到您的 PATH 中,或者使用完整路径:~/.composer/vendor/bin/phpmd。请参阅参考文档。 我有 /home//phpmd 文件夹,其中有 setupsrcvendor 文件夹,对于 PATH,我有 .profile @ 987654329@ 如果有人想知道如何在 $PATH 中添加 composer 的 bin 目录:***.com/questions/25373188/…【参考方案2】:

当您使用基于composer 的安装时,它会安装到./vendors 目录中的./bin 目录中。所以对我来说,相对于我的项目的根目录,它就在这里:

./vendor/bin/phpmd

我可以通过运行./vendor/bin/phpmd . text codesize 从项目的根目录运行它。 (我还没有得到任何有用的输出,但是另一个问题)

【讨论】:

以上是关于什么是 phpmd 以及如何使用它?的主要内容,如果未能解决你的问题,请参考以下文章

什么是 .pem 文件以及如何使用它?

什么是 Redis pubsub 以及如何使用它?

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

什么是 memoization 以及如何在 Python 中使用它?

什么是合同类以及如何使用它

什么是多态,它是什么,以及它是如何使用的?