2

我正在使用 PhpStorm 开发一个项目,并且我正在使用 Php 7.1 和 Docker。我想在 PhpStorm 中集成 PHP 代码嗅探器。

在 PhpStorm 中,我转到Settings|Languages&Frameworks|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 "$@"

它只是phpcs在我的 docker 容器中运行。

当我单击Validate时,PhpStorm 给我以下消息:

The input device is not a TTY

从 PhpStorm 控制台运行时,相同的脚本可以完美运行。

难道我做错了什么?或者我想要做的只是不支持?

4

2 回答 2

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分配一个伪 TTY,这就是它在 PhpStorm 控制台上工作的原因。

于 2016-12-30T18:21:17.887 回答
1

在 PhpStorm 2019 中,它开箱即用,无需 bash 脚本包装器。

首先,您需要转到项目设置 > 语言和框架 > PHP。单击“CLI 解释器”字段旁边的按钮 ... 并将其配置为与 Docker 一起使用,选择您的映像名称。

配置 CLI 解释器后,转到项目设置 > 语言和框架 > PHP > 质量工具,然后单击 PHP_CodeSniffer 旁边的三个点 (...) 按钮。添加使用您刚刚添加的 CLI 解释器的新配置并填写 CodeSniffer 路径(在我的情况下,这是“/opt/project/vendor/bin/phpcs”)。

瞧!

于 2020-03-03T07:38:44.820 回答