使用Docker在PhpStorm上配置CodeSniffer

3
我正在使用PhpStorm开发一个项目,使用的是Php 7.1和Docker。我想在PhpStorm中集成PHP代码嗅探器。
在PhpStorm中,我进入“设置|语言和框架|PHP|CodeSniffer”,尝试添加一个新的配置,我提供了一个脚本路径作为“PHP Code Sniffer (phpcs)路径”,该脚本具有以下内容:
#!/usr/bin/env bash
docker run --rm -ti --volume "$(pwd):/app:rw" -u $(id -u):$(id -g) prooph/php:7.1-cli php vendor/bin/phpcs "$@"

我只需在我的Docker容器中运行phpcs即可。

当我点击验证时,PhpStorm会给我以下信息:

The input device is not a TTY

当在PhpStorm控制台中运行时,相同的脚本可以完美地工作。

我做错了什么吗?还是我正在尝试的不被支持?

2个回答

3
在 PhpStorm 2019 中,无需使用 bash 脚本包装器即可直接使用。 首先,您需要进入“项目设置”>“语言和框架”>“PHP”。 单击“CLI 解释器”字段旁边的按钮 ...,并配置其与 Docker 配合工作,并选择您的映像名称。 一旦您配置了 CLI 解释器,请前往“项目设置”>“语言和框架”>“PHP”>“质量工具”,然后单击 PHP_CodeSniffer 旁边的三个点 (...) 按钮。添加新配置,使用您刚刚添加的 CLI 解释器,并填写 CodeSniffer 路径(在我的情况下为 “/opt/project/vendor/bin/phpcs”)。 完成!

3

您应该在不使用-t标志的情况下运行它:

#!/usr/bin/env bash
docker run --rm -i --volume "$(pwd):/app:rw" -u $(id -u):$(id -g) prooph/php:7.1-cli php vendor/bin/phpcs "$@"

-t 参数分配一个伪终端,这就是为什么它可以在 PhpStorm 控制台中工作的原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接