Windows下使用Notepad++和xdebug调试php脚本

原文链接:Windows下使用Notepad++和xdebug调试php脚本

Notepad++ 是开放源代码的可替代记事本的编辑器,它运行于 MS Windows 环境,支持多种编程语言。可以浏览http://notepad-plus.sourceforge.net/ 了解更多相关信息。
Xdebug 是 php 的一个扩展,它提供了对 php 脚本进行除错、追踪、检查的各种功能。可以浏览 http://xdebug.org 了解更多相关信息。

一、下载Notepad++和xdebug

下载Notepad++ 下载地址:http://nchc.dl.sourceforge.net/sourceforge/notepad-plus/npp.4.7.5.Installer.exe
Notepad++ 插件 DBGP pluginhttp://nchc.dl.sourceforge.net/sourceforge/npp-plugins/DBGpPlugin_0_7b_fix_dll.zip
xdebughttp://xdebug.org/link.php?url=xdebug202-52-win
* xdebug 的版本需要匹配环境使用的 PHP 版本,这里提供的链接为 PHP 5.2.1-5.2.7 使用 xdebug
xdebug helper for firefox:https://addons.mozilla.org/zh-CN/firefox/addon/3960

二、安装Notepad++和xdebug

安装Notepad++ 的安装方式如同大多数 Windows 下软件一样是非常简单的。只需按照屏幕提示设置并点击“下一步”,最后“完成”即可安装成功。
xdebug 的安装请参考:http://www.mikespook.com/index.php/archives/34

三、配置Notepad++和xdebug

为了让 Notepad++ 和 xdebug 协同工作,需要安装 DBGP plugin。下载后只需解压缩至 Notepad++ 安装目录中的 plugins 目录即可,如:D:\Program Files\Notepad++\plugins
需要说明的是,如果同时安装有 xcache 一定要先加载 xcache,再加载 xdebug;否则会造成 php 运行异常。

四、使用Notepad++和xdebug调试

首先,将编写分别使用递归方式和使用循环方式计算100的阶乘的两个函数,如下:

<?php
function f1($x) { // 循环计算 $x 的阶乘
  for($i=$x-1;$i>1;$i--){
    $x*=$i;
  }
  return $x;
}
function f2($x){// 递归计算 $x 的阶乘
  if($x == 1){
    return $x;
  }else{
    $y = $x-1;
    return $x * f2($y);
  }
}
echo 'f1:'. f1(10);
echo '';
echo 'f2:'. f2(10);
?>

将该文件放入可通过 web 访问并由 php 正确解析的目录,访问结果如图:

使用 Notepad++ 打开这个文件。通常在文件上点击鼠标右键(或者左键,如果你跟我一个方向的话),选择“Edit with Notepad++”,如图:

如果你没有这项,或者无法使用 Notepad++,请检查是否正确的安装了 Notepad++。打开后的界面如图:

在 Notepad++ 的菜单“插件”中选择“DBGp”并点击“Debug”

会在编辑器下半部分打开调试窗口:

此时就已经打开了编辑器端的调试功能。
使用XDEBUG_SESSION_START=1参数访问刚才编写的文件,如:http://127.0.0.1/foobar.php?XDEBUG_SESSION_START=1
此时会发现 Notepad++ 窗口会闪烁一下,这说明 Notepad++ 的 DBGp 插件已经生效。将光标放置到需要设置断点的位置,并点击有红点的按钮,光标所在行前会显示一个红点,表示断点行,如图:

此时访问/foobar.php?XDEBUG_SESSION_START=1,会发现浏览器无法正确显示出页面。其实这是由于 Notepad++ 已经将PHP 运行中断在断点处,等待调试:


补充一下的是:如果是用 firefox 访问页面,并且安装了 xdebug helper 的话。开启 xdebug helper  即可直接调试。 不需要再添加 XDEBUG_SESSION_START 参数。
之前无法使用的按钮,现在也可点击,可实现“Step Into”、“Step Over”、“Step Out”、“Run to cursor”、“Run”操作:

打开 Local Context 标签,点击鼠标右键选择“Refresh”,可以显示当前所有局部变量:

而对 Global Context 标签做同样的操作将显示所有全局变量:

Stack 标签可以显示栈的使用情况,这对于调试函数调用很有帮助。例如本例中的递归方式计算阶乘:

调试完毕或后可以将光标放置在断点处,再次点击断点按钮取消断点。然后点击“Run”按钮或按 F9 继续程序的执行。也可直接点击“Trun OFF” 按钮关闭调试功能。
特别要提一下的是Eval 按钮的功能。这个按钮可以动态改变某个变量的内容,以方便调试:



至此,Notepad++ 配合 xdebug 对 PHP 进行调试的基本功能就介绍完了。调试是非常讲究技巧和经验的,真正发挥调试的威力,还要大家在实际使用中总结和提高。

附录:Notepad++ 打造功能全面PHP IDE的10个插件

1、 Compare: 文件内容比较。
2、 Explorer:文件浏览器插件,包含收藏夹、Session保存功能。可与NppExec脚本结合使用。
3、 Language Help:将光标定位到某个函数即可快速打开帮助文档。
4、 NppExec:运行命令并捕获输出,有交互式console,支持脚本。
5、 Open File In solution:快递打开文件。
6、 SourceCookifier:类和变量浏览器。
7、 TagsJump: 函数快速定位(Alt + Q) 。
8、 XBrackets Lite:自动完成([{""}])的输入 。
9、 Npp Scripting: Notepad++ Javascript脚本编程。
10、DBGP:配合xdebug支持PHP远程调试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows使用 Notepad++xdebug 调试 php 脚本 转自:http://www.mikespook.com/index.php/archives/98 介绍Notepad++ 是开放源代码的可替代记事本的编辑器。它运行于 MS Windows 环境,支持多种编程语言。可以浏览http://notepad-plus.sourceforge.net/ 了解更多相关信息。 Xdebugphp 的一个扩展,它提供了对 php 脚本进行除错、追踪、检查的各种功能。可以浏览 http://xdebug.org 了解更多相关信息。 下载Notepad++ 下载地址:http://www.baidu.com/link?url=uULkAaYHzZDZSGm8XOlPH8EPhKZCv8mcbQtmU82LssIoYsVDW2MdIi6g1hdcDKjpGacAHz0xtnxWZHuD1HWUEoL9qCFlDPS1jxAqOJ1ZrYe&wd;=&eqid=8c17eb080003c9bf000000035a1919ed Notepad++ 插件 DBGP plugin: http://download.csdn.net/download/hongjia88/10132543 xdebug:https://xdebug.org/download.php * xdebug 的版本需要匹配环境使用PHP 版本。 xdebug helper for firefox:https://addons.mozilla.org/zh-CN/firefox/addon/3960 安装Notepad++ 的安装方式如同大多数 Windows 下软件一样是非常简单的。只需按照屏幕提示设置并点击“下一步”,最后“完成”即可安装成功。 为了让 Notepad++xdebug 协同工作,需要安装 DBGP plugin。下载后只需解压缩至 Notepad++ 安装目录中的 plugins 目录即可,如:C:\Program Files\Notepad++\plugins。 xdebug 的安装请参考:http://www.mikespook.com/index.php/archives/34。需要说明的是,如果同时安装有 xcache 一定要先加载 xcache,再加载 xdebug。否则会造成 php 运行异常。 使用首先,将编写分别使用递归方式和使用循环方式计算100的阶乘的两个函数,如下: <?php function f1($x) // 循环计算 $x 的阶乘 { for($i = $x - 1; $i > 1; $i–) { $x *= $i; } return $x; } function f2($x) // 递归计算 $x 的阶乘 { if($x == 1) { return $x; } else { $y = $x - 1; return $x * f2($y); } } echo ‘f1: ‘ . f1(10); echo ‘’; echo ‘f2: ‘ . f2(10); 将该文件放入可通过 web 访问并由 php 正确解析的目录,访问结果如图: 使用 Notepad++ 打开这个文件。通常在文件上点击鼠标右键(或者左键,如果你跟我一个方向的话),选择“Edit with Notepad++”,如图: 如果你没有这项,或者无法使用 Notepad++,请检查是否正确的安装了 Notepad++。打开后的界面如图: 在 Notepad++ 的菜单“插件”中选择“DBGp”并点击“Debug”: 会在编辑器下半部分打开调试窗口: 此时就已经打开了编辑器端的调试功能。 现在需要配置notepad++,打开DBGp->Debugger->config,填写Remote Server ip为127.0.0.1,IDE Hey留空,Remote Path和Local Path都为存放你的php文件的路径,点击确定,OK。 注意C:\windows\php.ini中“xdebug.remote_port=9000”。 使用XDEBUG_SESSION_START=1参数访问刚才编写的文件,如:http://127.0.0.1/foobar.php?XDEBUG_SESSION_START=1 此时会发现 Notepad++ 窗口会闪烁一下,这说明 Notepad++ 的 DBGp 插件已经生效。将光标放置到需要设置断点的位置,并点击有红点的按钮,光标所在行前会显示一个红点,表示断点行,如图: 此时访问/foobar.php?XDEBUG_SESSION_STAR

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值