Git Commit预提交钩子中如何安装PSR12编码标准?
解决PSR12编码标准未安装的问题
别担心,这个问题很常见,主要是因为你当前使用的PHP_CodeSniffer版本太旧了——PSR12是在PHP_CodeSniffer 3.0及以上版本才加入的官方标准,旧版本(比如2.x系列)里确实没有它。下面给你两种最常用的解决方法:
方法一:更新项目本地的PHP_CodeSniffer
如果你的phpcs是通过Composer安装在项目本地的(也就是在vendor目录里),直接在项目根目录执行这条命令:
composer require --dev squizlabs/php_codesniffer:^3.0
这条命令会把phpcs升级到支持PSR12的3.x版本,同时自动包含PSR12标准。
方法二:更新全局安装的PHP_CodeSniffer
如果你是全局安装的phpcs(可以通过执行phpcs -v确认是否全局可用),就用这条命令更新:
composer global update squizlabs/php_codesniffer
验证安装是否成功
更新完成后,执行下面的命令查看已安装的编码标准:
# 本地安装的话用这个 ./vendor/bin/phpcs -i # 全局安装的话用这个 phpcs -i
输出里应该能看到PSR12出现在列表里了,这时候再执行你的Git预提交钩子命令,就不会报错了。
额外提示
如果更新后还是有问题,建议检查一下预提交钩子里的命令路径是否正确,确保调用的是你刚更新的那个phpcs文件(比如项目本地的./vendor/bin/phpcs,而不是全局旧版本的)。
内容的提问来源于stack exchange,提问作者vinit agrawal
相关产品推荐
相关产品推荐

