如何使用WSL php在VS代码中验证PHP

时间:2016-09-24 15:09:38

标签: visual-studio-code windows-subsystem-for-linux

在VS代码中,您可以使用php可执行文件验证php。但有没有办法在WSL上安装php?

3 个答案:

答案 0 :(得分:3)

另一个答案对我来说也不起作用:经过一些工作,我想出了这两个脚本:

这个名为php.bat,我将其放在C:\wsl-tools\

@echo OFF
setlocal ENABLEDELAYEDEXPANSION
rem Collect the arguments and replace:
rem  '\' with '/'
rem  'c:' with 'mnt/c'
rem  '"' with '\"'
set v_params=%*
set v_params=%v_params:\=/%
set v_params=%v_params:C:=/mnt/c%
set v_params=%v_params%
set v_params=%v_params:"=\"%

rem Call the windows-php inside WSL.
rem windows-php is just a script which passes the arguments onto
rem the original php executable and converts its output from UNIX
rem syntax to Windows syntax.
C:\Windows\sysnative\bash.exe -l -c "windows-php %v_params%"

这个叫做windows-php,放在WSL路径的某个地方(我选择了/usr/local/bin)。

# Pass all the arguments to PHP.
output=$(php "$@")
# Perform UNIX->WINDOWS syntax replacements.
output="${output//$'\n'/$'\r'$'\n'}"
output="${output//\/mnt\/c/C:}"
output="${output//\//\\}"
# Echo corrected output.
echo $output

设置"php.validate.executablePath": "c:\\wsl-tools\\php.bat"对我有用。

注意

您可能需要关注this issuethis pull request,因为看起来这个问题将在下一个版本中正式解决。

答案 1 :(得分:2)

对我有用的东西

创建php.bat文件:

@echo off
set v_params=%*
set v_params=%v_params:\=/%
set v_params=%v_params:c:=/mnt/c%
set v_params=%v_params:"=\"%
@bash -c "php %v_params%"

将其放入C:\ WSL-Tools \ php.bat

然后,在VScode设置中(Ctrl +逗号):

"php.validate.executablePath": "C:\\WSL-Tools\\php.bat"

它有效。

答案 2 :(得分:1)

这可以使用旧的学校批处理文件。

php.bat

@echo off
c:\windows\sysnative\bash.exe -c "php %*"`

setting.json

"php.validate.executablePath": "c:\\PATH_TO\\php.bat"