PHP 7.0与NetBeans 8.1环境下CodeSniffer无法正常工作
嘿,我来帮你排查下这个问题!你已经按步骤完成了CodeSniffer的安装和NetBeans的配置,但右键「检查违规」没出结果,大概率是某个小环节没配置到位,咱们一步步来核对:
确认
phpcs.phar的绝对路径是否正确:别用相对路径,直接复制粘贴phar文件的完整路径(比如Windows下C:\dev\phpcs.phar,Linux/macOS下/home/yourname/tools/phpcs.phar),到「工具->选项->PHP->代码分析」里重新填写,保存后重启NetBeans试试。相对路径很容易因为NetBeans的工作目录问题失效。检查是否选中了代码规范规则集:在代码分析的配置界面,有没有指定要使用的规则(比如PSR1、PSR2这类官方规则,或者自定义的规则文件)?如果没选规则集,CodeSniffer不知道要检查什么,自然不会输出结果。点击「浏览」按钮,选择phpcs自带的规则文件即可。
确认你检查的是PHP文件:CodeSniffer只针对
.php文件生效,如果你右键检查的是HTML、CSS或者其他非PHP文件,肯定不会有任何结果。先试试右键单个PHP文件,选择「检查违规」看看有没有反应。手动测试
phpcs.phar是否正常工作:打开命令行,切换到你的项目目录,执行php /你的phpcs绝对路径/phpcs.phar 你的测试.php文件,看看命令行有没有输出违规信息。如果命令行也没结果,要么是你的代码完全符合规则(这种情况也有可能哦),要么是phpcs本身有问题;如果命令行有结果但NetBeans里没有,那就是NetBeans的配置或插件问题。检查PHPCSMD插件是否激活:去「工具->插件->已安装」列表里,看看PHPCSMD是不是处于勾选激活状态。有时候安装插件后不会自动激活,需要手动勾选后重启NetBeans。
查看NetBeans日志找报错:如果上面的步骤都没问题,可以去NetBeans的日志目录看看有没有相关错误。Windows一般在
C:\Users\你的用户名\AppData\Roaming\NetBeans\你的版本号\var\log,Linux/macOS在~/.netbeans/你的版本号/var/log,打开messages.log搜索「phpcs」或者「PHPCSMD」,看看有没有路径找不到、权限不足这类报错。
另外,要是还是没解决,可以试试清理NetBeans的缓存后重启,缓存目录就在日志目录附近的cache文件夹,删掉里面的内容再重新打开NetBeans,有时候缓存会导致配置不生效。
内容的提问来源于stack exchange,提问作者hetal gohel

