1

我试图调试一个 symfony 应用程序。

我在下面添加了对这个函数的 debug_backtrace() 调用。它输出一个调用函数的列表,但是 save() 函数(就在 debug_backtrace() 调用之前)不是那个列表。为什么?任何其他显示更多内容的调试方式,在这种情况下是 save() 调用?

protected function processForm(sfWebRequest $request, sfForm $form)
  {
    $form->bind($request->getParameter($form->getName()));

    if ($form->isValid())
    {

      $sf_guard_user = $form->save();

      var_dump(debug_backtrace());
     die("fsdgsgsdf");

      $this->redirect('guardausuario/edit?id='.$sf_guard_user-
>getId());

    }
  } 

问候

哈维

4

3 回答 3

3

我刚刚使用了我的目标

xdebug_start_trace('/tmp/foo');
$usuario = $form->save();
xdebug_stop_trace();

http://www.xdebug.org/docs/all_functions

哈维

于 2010-04-03T18:40:18.600 回答
1

Symfony 的 web 开发者栏有一些很棒的信息。

你到底想看到什么?回显 $form 是一件好事,因为它会显示表单中的所有字段和任何隐藏字段。此外,如果您正在编写自定义视图,请记住在您的视图中包含 [_csrf_token]。

而且... Symfony 和 xDebug 是一个很好的组合。

于 2010-04-01T20:16:34.823 回答
0

在 php.net ( http://php.net/manual/es/function.debug-print-backtrace.php ) 中,bishop 公开了这个解决方案:

$e = new Exception();
$e->getTraceAsString();

它为所有被调用的函数提供了一个简短而简洁的响应。它非常适合我的需要,所以我可以记录发生的事情而不会丢失。

于 2016-08-26T07:30:49.027 回答