PhpStorm配置全局phpcs报错:squizlabs/php_codesniffer编码规范未安装
问题原因
- PhpStorm默认优先级逻辑是优先调用项目本地
vendor/bin/phpcs二进制文件,而非你配置的全局版本,本地项目的phpcs没有提前配置Drupal规范的加载路径,触发规则不存在报错。 - 你在PhpStorm的「PHP CodeSniffer 检查」设置中默认勾选了「自动搜索配置文件」选项,IDE扫描到项目目录下存在
squizlabs/php_codesniffer自带的CodeSniffer.conf.dist文件,错误将其识别为编码规范文件加载,导致路径匹配失败。
解决步骤
方案一:优先使用全局PHP CodeSniffer(推荐,适配所有Drupal项目)
- 打开PhpStorm设置,路径:
Preferences > PHP > Quality Tools > PHP_CodeSniffer - 点击「配置」项右侧的三个点按钮,确认指定的phpcs路径为全局路径:
/Users/myusername/.composer/vendor/bin/phpcs,phpcbf路径同理指定全局版本,点击验证确认正常后保存。 - 进入
Preferences > Editor > Inspections > PHP > Quality tools > PHP_CodeSniffer validation设置页:- 取消勾选「Search for configuration file」选项
- 「Coding standard」下拉框手动选择Drupal或者DrupalPractice,不要留自动检测选项
- 保存设置后重启IDE即可生效。
方案二:适配项目本地PHP CodeSniffer(适合项目统一规范要求场景)
如果你需要使用项目本地的phpcs版本,执行以下操作:
- 进入项目根目录,执行命令将Drupal规范路径配置到本地phpcs:
./vendor/bin/phpcs --config-set installed_paths /Users/myusername/.composer/vendor/drupal/coder/coder_sniffer,/Users/myusername/.composer/vendor/sirbrillig/phpcs-variable-analysis
- 或者直接在项目根目录添加
phpcs.xml配置文件,指定使用的规范:
<?xml version="1.0"?> <ruleset name="Drupal Standards"> <description>Apply Drupal coding standards to the project</description> <rule ref="Drupal"/> <rule ref="DrupalPractice"/> </ruleset>
- 回到PhpStorm的PHP_CodeSniffer检查设置,保持「Search for configuration file」勾选状态,验证后即可正常使用。
内容的提问来源于stack exchange,提问作者chitter
相关产品推荐
相关产品推荐

