Visual Studio Code调试PHP

逻辑玄冰探
• 阅读 21233
本人微信公众号:前端修炼之路,欢迎关注。

Visual Studio Code调试PHP

这两天有点时间,花时间学习了一下PHP基础语法和语句。因为个人比较喜欢Visual Studio Code这款编辑器,所以学习我主要记录一下使用VSCode学习PHP的遇到的一些问题。其中最主要的就是怎样使用VSCode调试PHP代码。

语法检查和格式化

为了更加规范的学习PHP,我决定使用一个插件。如果在VSCode中搜索php format插件,会有三个排名最靠上的插件。我尝试了半天,其中PHP Intephense这个插件最好用。这个插件的评价是五星坪的,很容易跟另外的一个PHP IntelliSense弄混淆了。PHP IntelliSense这个插件的评价是三星,另外就是如果需要代码格式化的话,还得组合使用 PHP CS Fixer,我配置了半天比较麻烦。而且不知道为何,一直无法格式化。

所以强烈推荐直接安装PHP Intelephense。只要安装了这个插件,代码提示、语法检查、格式化就都有了。

phpStudy

为了更愉快的学习PHP,需要一套后台集成环境,我这里选择的是PHP Study,光听名字,我就知道适合自己了。:)

软件的安装和使用,就不记录了。比较方便的是,PHP Study集成了ApacheNginxIIS服务器,并且集成了php5php7,非常的适合开发和学习。

PHP Debug

VSCode中搜索插件PHP Debug,将这个插件安装到VSCode中。从这个插件的文档中,可以发现Installation,也就是说安装的说明。因为不会PHP,再加上英语水平不是特别好,所以这个文档看了好久,才弄明白。特此记录一下。

  • 安装XDebug。先不要直接下载XDebug,文档中有一行特别加粗的说明,一定要操作一下的。
I highly recommend you make a simple test.php file, put a phpinfo(); statement in there, then copy the output and paste it into the XDebug installation wizard. It will analyze it and give you tailored installation instructions for your environment.

上文提示就是说,强烈建议我们创建一个test.php,创建一条语句phpinfo(),然后将得到的信息粘贴到XDebug installation wizard这个页面中。这个页面会分析好你的PHP环境,已经需要安装XDebug的步骤。

test.php

<?php
phpinfo();
?>

test.php中创建如上内容,然后在浏览器中打开,会看到类似如下信息:

Visual Studio Code调试PHP

然后将页面ctrl+a全部拷贝,粘贴到XDebug installation wizard这个页面中。点击页面最下方的按钮Analyse my phpinfo() output。会得到类似如下的内容:

Visual Studio Code调试PHP

其中有4个步骤,照着做一下。第一个是下载xdebug;然后将文件移动到指定目录;最后打开php.ini文件,将zend_extension添加上。然后照着文档,添加xdebug.remote_enablexdebug.remote_autostart。完整的代码如下:

xdebug.remote_enable = 1
xdebug.remote_autostart = 1
zend_extension="D:\Program Files\Php\PHPTutorial\php\php-7.1.13-nts\ext\php_xdebug-2.7.2-7.1-vc14-nts.dll"

修改好php.ini文件之后,别忘记重启服务器,也就是phpStudy

vsCode debug

首先在phpStudyPHPTutorial\WWW目录之下,添加一个测试文件index.php。添加几行测试代码:

<?php
$x = 10;
echo "Hello PHP<br>"; 
echo $x;
?>

然后点击vsCodedebug按钮,或者ctrl+shift+d,开启调试窗口。如下:

Visual Studio Code调试PHP

launch.json中,配置了需要监听的xdebug的端口9000,直接使用默认的就好。

最后,只需要在代码中设置断点,然后刷新浏览器就能看见vscode进入断点了。如下图:

Visual Studio Code调试PHP

注意:我主要采坑的地方是在php.ini这个配置文件中。xdebug.remote_enablexdebug.remote_autostart,这两个配置文档中说的是设置为1。我设置之后经常会发现页面无法访问。后来我找到xdebug的官网文档,发现这两个属性也可以是boolean,文档看这里:remote_enable。所以如果有时无法访问到页面时,将值修改为true即可。


以上就是我配置VSCodePHP调试时候遇到的一些问题。主要感慨就是,文档一定要找到官方文档,然后提高英语阅读水平,随后再加上多多尝试即可。另外就是有时候百度出来的答案,自己尝试了经常会发现不好使~所以还是多多从官方文档入手。

Visual Studio Code调试PHP

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
梦
4年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Stella981 Stella981
3年前
React Hooks实现异步请求实例—useReducer、useContext和useEffect代替Redux方案
<blockquote本文是学习了2018年新鲜出炉的ReactHooks提案之后,针对<strong异步请求数据</strong写的一个案例。注意,本文假设了:<br1.你已经初步了解<codehooks</code的含义了,如果不了解还请移步<ahref"https://reactjs.org/docs/hooksintro.html
Stella981 Stella981
3年前
KaliTools说明书+BurpSuit实战指南+SQL注入知识库+国外渗透报告
!(https://oscimg.oschina.net/oscnet/d1c876a571bb41a7942dd9752f68632e.gif"15254461546.gif")0X00KaliLinux Tools中文说明书!(https://oscimg.oschina.net/oscnet/
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
3年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Stella981 Stella981
3年前
PHP+jQuery寥寥几行代码轻松实现百度搜索那样的无刷新PJAX的分页列表和导航链接
!(https://static.oschina.net/uploads/space/2016/1208/171419_U00R_561214.png)PHP寥寥几行代码轻松实现百度搜索那样的分页列表和导航链接,某些语言的拥趸哭晕在厕所.<?php$apparray('db_prefix''
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这