1

想象一下,我有一个 test.html 文件,其中包含一个调用 test.php 文件的 jQuery 行,如下例所示:

<html>
    <head>
        <title>Debug test</title>
        <script src="jquery.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready( function()
            {
                jQuery('#testdiv').load('test.php' );
            });
        </script>
    </head>

    <body>
        <div id="testdiv">
        </div>
    </body>
</html>

现在想象一下 php 文件 test.php 返回的结果如下例所示:

<?php
test();

function test()
{
    echo "Ok called me!";
}
?>

这两个文件当然是在像 Apache 这样的服务器下运行的。

我想要完成的是类似于 NetBeans Java EE 调试:在 test.php fun() 函数中放置一个调试断点,在 test.html 内的 jquery 调用中放置一个断点,然后调用 localhost/test.html 并查看jquery 调用中的第一个断点被命中,然后 test.php 中的第二个断点被命中。

如何使用 jetBrains Intellidea WebStorm 和 PHPStorm 获得(如果可能)?谢谢

4

1 回答 1

2

解决方案

正如 LazyOne 建议的那样,我应该在 PhpStorm 中使用“零配置”选项,完成说明在jetbrains/...

下面是对步骤的描述:

  1. 安装 Xdebug (sudo apt-get install php5-xdebug)
  2. 在 /etc/php5/apache2/php.ini 添加以下行:

    [Xdebug]
    zend_extension=/usr/lib/php5/20100525+lfs/xdebug.so
    xdebug.remote_enable=1
    xdebug.remote_host=localhost
    xdebug.remote_port=9000

  3. 重启 apache:“服务 apache2 重启”

  4. 检查 Xdebug 是否启用“php --version”应该显示“with xDebug vx.x”
  5. 切换“侦听调试器连接”按钮。监听调试连接,这将监听到 test.php 脚本的传入连接
  6. 在 test.php 源码中设置断点
  7. 激活 xdebug 调试器,为此我们需要设置一个特殊的 GET/POST 或 COOKIE 参数。您可以手动完成,但使用特殊的在线工具bookmerklets generator更方便

    在此处输入图像描述

  8. 打开 localhost/test.php,您将在 test.php 行看到开始调试的请求。

于 2013-08-23T18:25:11.210 回答