运行phpcbf/phpcs异常:触发VSCode打开并提示资源解析失败
问题现象
执行phpcbf --version时,VSCode会自动弹出提示:
The editor could not be opened due to an unexpected error: Unable to resolve resource phar://c:/PHP_Tools/phpcbf/src/Config.php
(有时报错文件会是Runner.php而非Config.php),之后进程会挂起;按下CTRL+C终止进程后,还会出现包含旧路径c:/Program%20Files/PHP_Tools/的同类错误(已将PHP_Tools文件夹移出该目录,但错误仍显示旧路径)。
此前曾发现.phar文件关联了VSCode,删除注册表项HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts后恢复正常,但今日问题复现且该注册表项已不存在。
该问题仅出现在phpcbf和phpcs中,phpmd与phpstan可正常运行。
相关文件目录
C:\PHP_Tools 🕙 08:38:52 λ dir Directory: C:\PHP_Tools Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 16/04/2024 13:40 1460735 phpcbf -a--- 22/11/2024 8:28 1059 phpcbf.bat -a--- 16/04/2024 13:39 1460731 phpcs -a--- 22/11/2024 8:25 59 phpcs.bat -a--- 12/03/2024 10:57 3168622 phpmd -a--- 22/11/2024 8:25 59 phpmd.bat -a--- 12/03/2024 11:19 22528065 phpstan -a--- 22/11/2024 8:25 61 phpstan.bat
批处理脚本内容
phpcbf.bat
@echo off REM 设置临时文件存储输出内容 set outputFile=%TEMP%\phpcbf_output.txt REM 执行phpcbf命令并将输出重定向到临时文件 C:\xampp7\php\php.exe "C:\PHP_Tools\phpcbf" %* > "%outputFile%" REM 保存phpcbf的退出码 set exitCode=%ERRORLEVEL% REM 打印退出码用于调试 echo Exit Code: %exitCode% REM 检查输出中是否包含指定字符串 findstr /C:"PHPCBF FAILED TO FIX" "%outputFile%" > nul REM 根据退出码和字符串存在情况处理 IF %exitCode% EQU 0 ( REM phpcbf未发现可修复错误 exit /b 0 ) ELSE IF %exitCode% EQU 1 ( REM phpcbf发现错误并修复,或存在无法修复的错误 IF ERRORLEVEL 1 ( echo "输出中未找到指定字符串" exit /b 0 ) ELSE ( echo "输出中找到指定字符串" exit /b 1 ) ) ELSE ( REM 错误码2,致命错误或语法错误 type "%outputFile%" exit /b 1 )
phpcs.bat
@echo off C:\xampp7\php\php.exe "C:\PHP_Tools\phpcs" %*
补充信息
phpcs和phpcbf均来自PHP_CodeSniffer项目。
内容的提问来源于stack exchange,提问作者Daviid
相关产品推荐
相关产品推荐

