是否可以使用 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()
、echo
、printf
和 die
它适用于所有 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
中阅读有关调试 Phalcon 的更多信息
调试基于 Phalcon 的应用程序的最佳方法是将以下代码片段包含到应用程序的 bootstrap 部分,一旦出现任何错误(应用程序级别),您将获得如下非常有用的信息.
- 回溯
- 请求
- 服务器
- 包括文件
- 内存(这个很有用)
(new Phalcon\Debug)->listen();
是否可以调试 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()
、echo
、printf
和 die
它适用于所有 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
中阅读有关调试 Phalcon 的更多信息调试基于 Phalcon 的应用程序的最佳方法是将以下代码片段包含到应用程序的 bootstrap 部分,一旦出现任何错误(应用程序级别),您将获得如下非常有用的信息.
- 回溯
- 请求
- 服务器
- 包括文件
- 内存(这个很有用)
(new Phalcon\Debug)->listen();