16

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

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

这个博客

我发现phpmd ( PHP Mess Detector ) 也是一个必需的库,因此按照官方 php md页面上的给定说明 使用替代方法从 github 存储库安装了phpmd 一切都已 完成。

:~/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文件夹,所有内容都没有任何错误。

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

请告诉我是什么意思

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

4

2 回答 2

36

我认为问题在于您已将 phpmd 安装在本地目录中,但您尝试使用它,就好像它是全局安装的一样。

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

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

Github

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

全局作曲家安装

使用 composer global 命令全局安装 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版本选择最新版本并下载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

码头集装箱

首先,使用 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
于 2015-01-16T11:09:45.017 回答
4

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

./vendor/bin/phpmd

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

于 2017-06-13T21:35:46.567 回答