PhpStorm无法运行PHP代码CodeSniffer

时间:2018-08-09 07:56:09

标签: php phpstorm codesniffer

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

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

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

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

  

无法运行PHP代码

还将所有内容添加到PATH

我错过了什么吗?

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

8 个答案:

答案 0 :(得分: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.bat的路径并Validate

然后在Settings -> Editor -> Inspections中找到节点PHP Code Sniffer validation并启用它。启用它后,您就可以对其进行配置-专门选择编码标准。

enter image description here enter image description here

这是我的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\\"

答案 1 :(得分:0)

我正在将OpenServer与PHP 7.0-64x一起使用 我的Env中仅包含composer和PHP。 vars。

但是在我在控制台上测试它之前,一切都还好 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 classes /   --colors

发生了与我重新运行Phpstorm相同的错误,它开始起作用

答案 2 :(得分:0)

我也遇到了这个问题;然后我删除了与phpcs.bat相同目录中的phpcs,并且有效。

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

尝试使用php cli运行它以查看错误文本。 就我而言,是:

driver.switch_to_frame(driver.find_element_by_xpath("//*[@class='calculator-frame']"))
driver.find_element_by_xpath("//*[@class='btn btn-dark']").click()

(我忘记在项目根目录中运行$ 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 命令)。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

对我来说,重新启动PC已解决问题。 尝试重新启动PHPStorm并从Windows用户重新登录,但不起作用

答案 7 :(得分:0)

就我而言,将 PHP 添加到 Windows 环境路径解决了该问题。

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

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