什么是 phpmd 以及如何使用它?
Posted
技术标签:
【中文标题】什么是 phpmd 以及如何使用它?【英文标题】:what is phpmd and how to use it? 【发布时间】:2015-03-13 13:01:22 【问题描述】:我有 Ubuntu 14.04 + Sublime text 3 并安装了 phpcs 包
另外我在我的系统上安装了phpcs
和php-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/setup
、src
和 vendor
文件夹,对于 PATH,我有 .profile
@ 987654329@
如果有人想知道如何在 $PATH 中添加 composer 的 bin 目录:***.com/questions/25373188/…【参考方案2】:
当您使用基于composer
的安装时,它会安装到./vendors
目录中的./bin
目录中。所以对我来说,相对于我的项目的根目录,它就在这里:
./vendor/bin/phpmd
我可以通过运行./vendor/bin/phpmd . text codesize
从项目的根目录运行它。 (我还没有得到任何有用的输出,但是另一个问题)
【讨论】:
以上是关于什么是 phpmd 以及如何使用它?的主要内容,如果未能解决你的问题,请参考以下文章