1

所以我最近刚刚从使用 的临时调试和一些更复杂的方法迈出了一步dump,我遇到了困难。print_recho

我使用 Zend Framework、Aptana 和 Zend Debugger。

此时我正在尝试调试自定义控制器,无论我尝试什么,我都没有到达我理解的断点,因为在两者之间有身份验证并使用菜单。

问题

  1. 如何让我的应用程序在身份验证时中断,登录浏览器,导航到某个 uri,然后继续调试?
  2. 使用 MVC 在 Zend Framework 中设置断点的好地方有哪些?
4

4 回答 4

1

设置一个常量会不会更容易,例如:

define('MODE_DEBUG', 1);

然后检查身份验证过程:

if($obj->myLoginMethod() || constant('MODE_DEBUG') == 1){

}

没有人能够注入这个常数,而最糟糕的事情是你最终因为我的错误离开了调试模式......

您可以在定义之前进行检查:

define('MODE_DEBUG', (false !== strpos($_SERVER['HTTP_HOST'], 'dev.mysite.com') ? 1 : 0));
于 2008-12-05T13:54:32.003 回答
1

您想在请求中途更改当前用户的身份验证详细信息吗?

我不认为这是可能的。Zend Debugger 几乎是一个只读工具。即使是这样,您也假设您使用的任何框架都可以处理这个问题。这意味着它必须不断尝试将其内部状态与不断变化的输入数据同步。

我认为与其问我们如何解决这个特定问题,不如告诉我们为什么需要更改身份验证。听起来您正在调试器中启动一个脚本,但由于您没有用户会话而失败。

Zend Debugger 有一个浏览器工具栏 ( http://files.zend.com/help/Zend-Studio-Eclipse-Help/zend_debugger_toolbar.htm ) 允许您为当前页面启动一个调试器;调试器将包含浏览器发送的所有信息:cookie、发布数据等。甚至还有一个“调试下一页”设置可以帮助您调试 POST 表单。听起来这就是你想要的。

于 2008-12-06T11:39:06.363 回答
1

也许您只需要重新考虑转储解决方案(我喜欢使用断点的想法,但在遇到像您经验丰富的打嗝后又转回来,我使用 Zend Studio)。为了调试我的应用程序,我使用 Zend_Log 和 Zend_Log 的firebug writer。firebug 将日志输出到firebug(注意,您还必须安装 firefox 的firephp扩展)。将记录器存储在您的注册表中,您可以完成大量调试,而不会因为丑陋的转储而弄乱您的视图。

于 2008-12-06T22:27:17.070 回答
0

Ok so I played with zend debugger some more. (your question stirred up old demons) and I finally figured out the "proper" way to debug. To answer your initial question to debug after login I would say install the zend toolbar for firefox or IE. To the right of the Debug menu item there is a drop down with some options. One of the options is "next page". So you can go to your login screen select "Next Page" and then put in your credentials and submit and the NEXT page is what is debugged.

于 2008-12-09T16:17:54.427 回答