Codeigniter + NetBeans + XDebug:重定向()后调试器无法正常工作

时间:2013-06-13 14:40:31

标签: php codeigniter netbeans netbeans-7 xdebug

我正在开发一个使用CodeIgniter的项目。我使用Netbeans作为我的IDE并安装了Xdebug。我正在使用XAMPP进行本地开发。

什么有效: Xdebug适用于normal PHP code.

问题:但是,我在调试CodeIgniter项目时遇到问题。调试器在redirect()

上停止

问题详情:在netbeans中开始调试项目。调试器启动,我们看到主页。在主页上,有一个与主页控制器中的方法相对应的链接。 调试器到达链接指向的控制器中的方法。在这种方法中有一个redirect 重定向调试器STOPS。

相关代码段:

点击的网址(这是标题菜单的一部分)

<a href="<?= base_url("somefunc/"); ?>">Click Me </a>

routes.php - 为更漂亮的网址重新路由。

$route['somefunc'] = "foo/somefunc";

在我的 Foo控制器(foo.php)中:

class Foo extends CI_Controller {
    public function somefunc()
    {
        redirect('/bar/otherfunc');  // DEBUGGER REACHES TILL HERE THEN STOPS WORKING
    }
}

如上文function somefunc()中的评论所述,Xdebug停止在重定向发生的地方工作。

此外,以下信息可能有一些用处:

的config.php

$config['uri_protocol'] = 'AUTO'; // I have also tried PATH_INFO, QUERY_STRING, REQUEST_URI & ORIG_PATH_INFO.
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
$config['enable_query_strings'] = TRUE; // Have tried FALSE too.
$config['index_page'] = ''; // Tried index.php too.
php.ini

中的

xdebug 设置

zend_extension ="path\to\xampp\php\ext\php_xdebug.dll"
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000

注意 - 我已经尝试过使用我在这里看到的不同建议,以及通过谷歌但无济于事。有人可以指出我正确的方向吗?

3 个答案:

答案 0 :(得分:9)

找到解决方案。也许这可能会帮助那些一直在努力解决这个问题的人。显然,为了顺利调试,您需要包含选项:

xdebug.remote_autostart=1

php.ini中。这些设置现在适用于我:

xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_autostart=1

最后一行是我在(Xdebug Official Documentation)上找到的选项。文件的相关部分如下所述:

<强> xdebug.remote_autostart

类型:布尔值,默认值:0

通常,您需要使用特定的HTTP GET / POST变量来启动远程调试(请参阅远程调试)。当此设置设置为1时,即使GET / POST / COOKIE变量不存在,Xdebug也将始终尝试启动远程调试会话并尝试连接到客户端。

答案 1 :(得分:0)

我发现了同样的问题,并通过升级我的xdebug版本来修复它。

我使用的版本中似乎存在一个错误(xdebug 2.1.3),但它在xdebug 2.2.3上运行良好。

使用此工具获取适用于您的环境的自定义安装说明。 http://xdebug.org/wizard.php

答案 2 :(得分:0)

请注意,netbeans会使用$_SERVER['PATH_INFO']和@ http://127.0.0.1/site/test.php/v1/v2/parametertoputonphpathinfo/v3之类的网址,netbeans板上有一个Mon Sep 09, 2013 8:54 am错误,直到2014年才会收到回复:

http://forums.netbeans.org/topic56645.html

这使得使用sinatra方式的调试框架无法路由请求 重写我的简单Sinatra路由器,使其具有$ _GET模式进行调试,并获得更好的钩子代码。