【问题标题】:PhpStorm Can not run PHP Code CodeSnifferPhpStorm 无法运行 PHP 代码 CodeSniffer
【发布时间】:2019-01-16 14:26:22
【问题描述】:

我正在尝试在 PhpStorm 中使用 CodeSniffer。

设置->PHP->CLI解释器 我使用https://windows.php.net/ 链接到 php.exe,但也使用 Cygwin 和 XAMPP 进行了尝试。

PhpStorm 向我展示了正确的 PHP 版本 7.2.5 和 php.ini

在 CodeSniffer 配置中,我选择了 phpcs.bat 当我点击验证时,我得到了

无法运行 PHP 代码

还将所有内容添加到PATH

我错过了什么吗?

【问题讨论】:

  • 尝试运行 phpcs 文件而不是 phpcs.bat 文件
  • 然后我得到Cannot run program "...\phpcs": CreateProcess error=193, %1 is not a valid Win32-Application
  • 1) 请提供设置截图。细节很重要。 2) 你php.exe 是系统范围内可发现的吗?我的意思是——如果你在终端(IDE 之外)运行where php,它会显示正确的路径吗?
  • 我添加了一些屏幕
  • 你正在执行phpcs.bat——完美。 .BAT 文件里面调用你的php.exe(因为它对 PhpStorm 和 PHP 解释器和其他东西一无所知)......现在看起来php.exe 实际上无法被操作系统发现。您需要将其路径放入系统PATH 变量中。这就是错误信息提示我的...

标签: php phpstorm codesniffer


【解决方案1】:

您应该将phpcs.batphpcs 放在您的PHP 文件夹中——例如d:\program\php\phpcs。 CodeSniffer 本身应该位于d:\program\php\PEAR\PHP\CodeSniffer - 会有一个脚本autoload.php 和一个子文件夹src

然后在Settings -> Languages & Frameworks -> PHP -> Code Sniffer 中指定phpcs.batValidate 的路径。

然后在Settings -> Editor -> Inspections 中找到节点PHP Code Sniffer validation 并启用它。启用后,您将能够对其进行配置 - 具体选择编码标准。

这是我的phpcs

#!D:\PROGRAM\Inet\Design\php\php.exe
<?php
/**
 * PHP_CodeSniffer detects violations of a defined coding standard.
 *
 * @author    Greg Sherwood <gsherwood@squiz.net>
 * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600)
 * @license   https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
 */

if (is_file(__DIR__.'/../autoload.php') === true) {
    include_once __DIR__.'/../autoload.php';
} else {
    include_once 'PHP/CodeSniffer/autoload.php';
}

$runner   = new PHP_CodeSniffer\Runner();
$exitCode = $runner->runPHPCS();
exit($exitCode); 

这是我的phpcs.bat

@echo off
REM PHP_CodeSniffer detects violations of a defined coding standard.
REM 
REM @author    Greg Sherwood <gsherwood@squiz.net>
REM @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600)
REM @license   https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence

if "%PHPBIN%" == "" set PHPBIN=D:\PROGRAM\Inet\Design\php\php.exe
if not exist "%PHPBIN%" if "%PHP_PEAR_PHP_BIN%" neq "" goto USE_PEAR_PATH
GOTO RUN
:USE_PEAR_PATH
set PHPBIN=%PHP_PEAR_PHP_BIN%
:RUN
"%PHPBIN%" "D:\PROGRAM\Inet\Design\php\phpcs" %* 

这是我的PEAR_ENV.reg,我已将其导入 Windows 注册表

REGEDIT4
[HKEY_CURRENT_USER\Environment]
"PHP_PEAR_SYSCONF_DIR"="D:\\PROGRAM\\Inet\\Design\\php"
"PHP_PEAR_INSTALL_DIR"="D:\\PROGRAM\\Inet\\Design\\php\\pear"
"PHP_PEAR_DOC_DIR"="D:\\PROGRAM\\Inet\\Design\\php\\docs"
"PHP_PEAR_BIN_DIR"="D:\\PROGRAM\\Inet\\Design\\php"
"PHP_PEAR_DATA_DIR"="D:\\PROGRAM\\Inet\\Design\\php\\data"
"PHP_PEAR_PHP_BIN"="D:\\PROGRAM\\Inet\\Design\\php\\php.exe"
"PHP_PEAR_TEST_DIR"="Z:\\Temp\\"

【讨论】:

  • 我按照你的描述做了,但我不能Validate
  • 也许Validate 显示了一些有意义的错误信息?
  • 谢谢!我用梨安装了所有新的东西,现在它可以工作了。但还是不知道哪里错了:)
  • @TedLogan你是如何在 Windows 上安装 PEAR 的?
【解决方案2】:

我正在使用带有 PHP 7.0-64x 的 OpenServer 我的环境中只有作曲家和 PHP。变量。

但在我在控制台中测试它之前一切都很好 phpcs 版本:3.3.2(最近几天) 像这样:

C:\OpenServer\domains\phpWorkingWithFiles\vendor\bin>phpcs --standard=PSR2 C:\OpenServer\domains\phpWorkingWithFiles\classes\Recipe.php

或者像这样

C:\OpenServer\domains\phpWorkingWithFiles>vendor\bin\phpcs 类/ --颜色

我重新运行 Phpstorm 时遇到了同样的错误,它开始工作了

【讨论】:

    【解决方案3】:

    我也有这个问题;然后我删除了与 phpcs.bat 位于同一目录中的 phpcs,它起作用了。

    【讨论】:

      【解决方案4】:

      我们也遇到了同样的问题,没有安装 PHP。

      为了能够加载代码嗅探器,您必须安装 PHP(本地在您的 PC/笔记本电脑上)!

      【讨论】:

        【解决方案5】:

        尝试使用 php cli 运行它以查看错误文本。 在我的情况下是:

        $ php /home/alex/apps/code-style/code-style/scripts/phpcs.php
        PHP Fatal error:  require_once(): Failed opening required '/home/daniel/apps/code-style/code-style/scripts/../vendor/autoload.php' (include_path='.:/usr/share/php') in /home/daniel/apps/code-style/code-style/scripts/phpcs.php on line 3
        

        (我忘记在项目根目录中运行composer install 命令)。

        【讨论】:

          【解决方案6】:

          我知道这不是一个令人满意的解决方案,但对我来说(在 Windows 10 上,已将 CodeSniffer 安装为全局作曲家安装)通过重新启动 PhpStorm 解决了它。

          【讨论】:

            【解决方案7】:

            对我来说,重启 PC 解决了问题。 尝试重新启动 PHPStorm 并从 Windows 用户重新登录,但没有成功

            【讨论】:

              【解决方案8】:

              在我的情况下,将 PHP 添加到 Windows 环境路径解决了这个问题。

              尽管我在 PHPStorm Settings -> Language & Frameworks-> PHP -> CLI Interpreter 中设置了 PHP 的路径,但我仍然收到此错误,直到我在 Windows 环境变量中设置它。

              当我尝试验证 phpcs.bat 的路径时,错误消息是 无法运行 PHP_CodeSniffer

              【讨论】:

                【解决方案9】:

                当我在 PHPStorm 中选择 phpcs.phar 文件时,我收到了错误 Cannot run program "phpcs.phar": CreateProcess error=193, %1 is not a valid Win32-Application。我的%PATH% 包含我的PHP 安装目录,我可以从命令提示符运行php

                来自 PHPStorm 的错误暗示它试图将 phpcs.phar 作为可执行文件启动,而不是使用 php phpcs.phar 将其传递给 PHP。我通过创建一个包含以下内容的phpcs.bat 解决了这个问题:

                @php C:\absolute\path\to\phpcs.phar %1
                

                然后我在 PHPStorm 中选择了我的 phpcs.bat,而不是 phpcs.phar。然后我能够在 PHPStorm 中验证和运行该工具。相同的方法适用于其他代码质量工具。

                【讨论】:

                  猜你喜欢
                  • 2016-07-25
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2019-08-01
                  • 1970-01-01
                  • 2011-09-07
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多