是否可以使用 Phalcon PHP 进行调试?

Is it possible to Debug with Phalcon PHP?

是否可以调试 Phalcon PHP?

我正在使用 Sublime 3 编辑器,但如果可以调试,我愿意使用任何编辑器。

我在 Stack Overflow 上发现了一个类似的问题,但唯一的答案是关于 Phalcon 有多棒的推销。

已更新:我正在事后更新这个问题。我了解到调试 Phalcon 应用程序与调试 PHP 应用程序没有什么不同,只是您无法调试实际的 Phalcon 代码。我认为根本不可能进行调试,所以我的问题可能会误导其他同时对 PHP 和 Phalcon 不熟悉的开发人员。

不幸的是,由于 Phalcon 是编译的 PHP 扩展,因此无法使用 PHP 调试器对其进行调试。为了了解 Phalcon 的内部结构,我们通常做的是查看 Zephir 源代码。

编辑:因为我上面的原始答案可能会被误解。我认为这个问题的目标是调试 Phalcons 内部函数,这只能通过 C 调试器实现(如 Luke 的回答中所述)。当然调试自己的PHP代码还是可以的,但是你可能无法进入Phalconclasses/methods.

我假设您想调试 PHP 代码,而不是 Phalcon 扩展。如果你的意思是调试 Phalcon 框架本身,你应该安装 Zephir 来修改代码并使用 gdb 到 运行 php 命令(至少在 linux 上,不知道是什么关于其他系统)。

标准 var_dump()echoprintfdie

它适用于所有 phalcon 对象,只需使用 var_dump()(或其他输出函数)打印出要调试的变量,并在执行视图代码之前使用 die()。如果 view 部分应用程序得到执行,很可能会替换您的调试打印。

或者,您也可以传递变量以查看应用程序的一部分,只需使用 <?php var_dump($variable)?> 或者如果您使用的是伏特,则只需 {{dump(variable)}}.

使用 XDebug 远程

这是我个人最喜欢的方式。是的,XDebug Remote 与 Phalcon 配合得很好。我个人使用 NetBeans,但您也可以使用其他 IDE。流行的 IDE 的配置教程很多,所以我不打算再写一遍。请注意,Phalcon 团队建议使用 XDebug 2.2.3 或更高版本以获得更好的兼容性。

how to configure XDebug on PHP Storm

how to configure XDebug on NetBeans

how to configure XDebug on Sublime 3

您可以在 Phalcon's Documentation

中阅读有关调试 Phalcon 的更多信息

调试基于 Phalcon 的应用程序的最佳方法是将以下代码片段包含到应用程序的 bootstrap 部分,一旦出现任何错误(应用程序级别),您将获得如下非常有用的信息.

  • 回溯
  • 请求
  • 服务器
  • 包括文件
  • 内存(这个很有用)

(new Phalcon\Debug)->listen();