PHPCS更新后版本未同步显示问题求助
以下是可能导致该问题的几种原因:
PATH环境变量优先级问题:系统中存在多个PHPCS安装实例,
phpcs命令优先调用了更早安装的3.6.0版本(比如通过Homebrew、PECL或手动下载),而Composer全局安装的3.9.0所在目录在PATH中的排序靠后。你可以执行which phpcs查看当前调用的程序路径,再对比Composer全局bin目录(通常是~/.composer/vendor/bin或~/.config/composer/vendor/bin)的位置。Composer全局bin目录未加入PATH:若Composer的全局bin目录未添加到系统PATH中,系统无法识别Composer安装的PHPCS 3.9.0,执行
phpcs时仍会调用旧版本。可检查~/.bash_profile或~/.zshrc(若使用Zsh)中是否存在export PATH="$HOME/.composer/vendor/bin:$PATH"这类配置。终端命令缓存未刷新:终端缓存了旧的
phpcs命令路径,即便更新了PATH或安装了新版本,缓存未清除仍会调用旧版本。执行hash -r可刷新终端的命令缓存,之后再运行phpcs --version验证。Composer全局依赖目录冲突:可能存在多个Composer全局依赖目录(如
.composer和.config/composer),composer global show显示的是其中一个目录的3.9.0版本,但实际调用的是另一个目录中的旧版本。执行composer config --list --global查看vendor-dir和bin-dir的配置,确认实际安装路径。系统级安装的旧版本优先级更高:若之前通过Homebrew等系统级工具安装过PHPCS,其bin目录(如
/usr/local/bin)通常在PATH中优先级更高,会被优先调用。这种情况下,即便Composer安装了新版本,系统仍会使用Homebrew的旧版本。可执行brew list | grep php_codesniffer确认是否通过Homebrew安装,若是则用brew upgrade php_codesniffer更新,或调整PATH顺序让Composer的bin目录靠前。
内容的提问来源于stack exchange,提问作者berlindave

