在vscode更好地进行php编码
目录
Visual Studio Code 是一款出色的 PHP 开发编辑器。我们可以使用语法高亮和括号匹配、自动提示和开箱即用的代码段等功能。
php扩展
VS Code Marketplace上有许多可用的 PHP 语言扩展。我们可以在 VS Code 中的“扩展”视图 ( Ctrl+Shift+X ) 中搜索 PHP 扩展,然后输入php:
sftp支持远程同步
-
安装sftp扩展
在扩展中输入sftp,找到作者是Natizyskunk的SFTP(继承liximomo)
-
配置与使用
Ctrl+Shift+P
on Windows/Linux orCmd+Shift+P
on Mac open command palette, runSFTP: config
command.会在.vscode目录下生成sftp的配置文件,可以写入:
{ "name": "开发测试host", "host": "192.168.22.128", "protocol": "sftp", "port": 22, "secure": true, "username": "username", //远程用户 "remotePath": "/public_html/project", //远程项目代码绝对路径 "password": "password", //远程密码 "uploadOnSave": true //保存时同步上传 }
注意:注释可能会导致报错,可以去除注释
重启下vscode,右键文件或目录就会出现upload的操作了。
-
扩展存在问题导致上传失败
第一次同步上传时可能会报错:Error: No such file (sftp liximomo extension)
因为存在扩展存在问题,解决:
-
Shutdown / Quit VS Code.
-
Locate the following file:
Mac OS X: ~/.vscode/extensions/liximomo.sftp-1.12.9/node_modules/ssh2-streams/lib/sftp.js
Windows: C:\Users\account_name.vscode\extensions\liximomo.sftp-1.12.9\node_modules\ssh2-streams\lib\sftp.js
-
Make a backup copy of the file.
-
Modify line 388, which should be:
if ( code === STATUS_CODE . OK ) {
changing it to:
if (code === STATUS_CODE.OK || code === STATUS_CODE.NO_SUCH_FILE) {
-
Save the file.
-
Relaunch VS Code; test by uploading or downloading from your sftp server. The error should not be present.
来源:visual studio code - Error: No such file (sftp liximomo extension) - Stack Overflow
-
-
官方扩展
官方扩展:liximomo/vscode-sftp: Super fast sftp/ftp extension for VS Code - config-in-user-setting
xdebug支持同步本地调试
php服务安装xdebug
-
php服安装xdebug扩展
比如ununtu下:
sudo apt-get install php-xdebug
或者通过pecl安装对应版本PECL :: Package :: xdebug
-
php服务配置xdebug
找到php.ini,或是比如/etc/php/7.1/mods-available/xdebug.ini
zend_extension=xdebug.so ;xdebug.auto_trace=On ;xdebug.collect_params=On ;xdebug.collect_return=On ;xdebug.trace_output_dir="/tmp/xdebug/" xdebug.profiler_enable=On xdebug.profiler_output_dir="/tmp/xdebug/" xdebug.idekey=vscode-xdebug xdebug.remote_enable = On ;remote_host是vscode所在机器host xdebug.remote_host=192.168.0.107 xdebug.remote_port=9000 xdebug.remote_handler=dbgp xdebug.remote_connect_back=1 ;xdebug.remote_log=/home/work/odp/log/xdebug.log xdebug.remote_timeout=3000 xdebug.remote_autostart=1
修改保存后,重启php相关服务,php-fpm
vscode安装配置xdebug
-
vscode安装xdebug扩展
扩展输入php debug,安装扩展PHP Debug - Visual Studio Marketplace
-
vscode配置xdebug
点击vsCode的debug按钮,或者ctrl+shift+d,开启调试窗口。如下:
(图片来源segmentfault)
会打开./vscode/launch.json中,配置需要监听的xdebug的端口9000。
要使 VS Code 将服务器上的文件映射到本地计算机上的正确文件,路径映射在 launch.json 中设置。比如:
// server -> local “pathMappings”: { “/var/www/html”: “E:\www”, “/app”: “E:\app” }
-
支持浏览器、postman请求调试
因为只要访问了远程php服务请求,xdebug就会收集php运行时数据,并转发给remote_host的remote_port端口,比如我们点了listen for xdebug的话,vscode监听着9000端口,vscode就会进入调试
-
关于CLI
另注意,设置任何 CLI 调试选项都不适用于远程主机调试,因为脚本始终在本地启动。如果要在远程主机上调试 CLI 脚本,则需要从命令行手动启动它。
如何使用debug
打断点、接受xdebug、继续执行、跳过、下一步等,参考官方文档:
(图片来源segmentfault)
debug使用参考:Debugging in Visual Studio Code
更多
参考
PHP Programming with Visual Studio Code
Debugging in Visual Studio Code
PHP Debug - Visual Studio Marketplace
[PHP Debug] Visual Studio Code 调试插件 | Laravel China 社区
GitHub - liximomo/vscode-sftp: Super fast sftp/ftp extension for VS Code - config-in-user-setting
Common Config · liximomo/vscode-sftp Wiki · GitHub
visual studio code - Error: No such file (sftp liximomo extension) - Stack Overflow