可以用Phalcon PHP进行调试吗?
是否可以调试Phalcon PHP? 我正在使用升华3编辑器,但如果调试是可能的,我愿意使用任何编辑器 我在Stack Overflow上发现了一个类似的问题,但唯一的答案是关于Phalcon有多棒的推销可以用Phalcon PHP进行调试吗?,php,debugging,sublimetext3,phalcon,Php,Debugging,Sublimetext3,Phalcon,是否可以调试Phalcon PHP? 我正在使用升华3编辑器,但如果调试是可能的,我愿意使用任何编辑器 我在Stack Overflow上发现了一个类似的问题,但唯一的答案是关于Phalcon有多棒的推销 更新:我在事后更新这个问题。我了解到调试Phalcon应用程序与调试PHP应用程序没有什么不同,只是您无法调试实际的Phalcon代码。我认为根本不可能进行调试,所以我的问题可能会误导其他同时对PHP和Phalcon都不熟悉的开发人员 不幸的是,由于Phalcon是一个已编译的PHP扩展,因此
更新:我在事后更新这个问题。我了解到调试Phalcon应用程序与调试PHP应用程序没有什么不同,只是您无法调试实际的Phalcon代码。我认为根本不可能进行调试,所以我的问题可能会误导其他同时对PHP和Phalcon都不熟悉的开发人员 不幸的是,由于Phalcon是一个已编译的PHP扩展,因此无法使用PHP调试器对其进行调试。为了理解Phalcon的内部结构,我们通常会看一看Zephir的源代码
编辑:因为我上面的原始答案可能会被误解。我认为这个问题的目标是调试Phalcons的内部函数,这只有在C调试器中才能实现(如Luke的回答所述)。当然,仍然可以调试您自己的PHP代码,但您可能无法进入Phalcon类/方法。不幸的是,由于Phalcon是一个编译的PHP扩展,因此无法使用PHP调试器对其进行调试。为了理解Phalcon的内部结构,我们通常会看一看Zephir的源代码
编辑:因为我上面的原始答案可能会被误解。我认为这个问题的目标是调试Phalcons的内部函数,这只有在C调试器中才能实现(如Luke的回答所述)。当然,仍然可以调试您自己的PHP代码,但您可能不会进入Phalcon类/方法。我假设您想要调试PHP代码,而不是Phalcon扩展。如果您的意思是调试Phalcon框架本身,您应该安装
Zephir
进行代码修改,并使用gdb
运行php命令(至少在linux上,不确定其他系统如何)
标准var_dump()
,echo
,printf
和die
它适用于所有phalcon对象,只需打印出要使用var_dump()(或其他输出函数)调试的变量,并在执行视图代码之前使用die()
。如果view
部分应用程序被执行,则很可能会替换调试打印
或者,您也可以传递变量以查看应用程序的一部分,只需使用
,或者如果您使用的是volt,则只需{{dump(variable)}
使用XDebug远程
这是我个人最喜欢的方式。是的,XDebug Remote与Phalcon配合使用非常好。我个人使用NetBeans,但您也可以使用其他IDE。这里有很多关于配置所有流行IDE的教程,所以我不再写了。请注意,Phalcon团队建议使用XDebug 2.2.3或更高版本以获得更好的兼容性
您可以在中阅读有关调试Phalcon的更多信息。我假设您想调试PHP代码,而不是Phalcon扩展。如果您的意思是调试Phalcon框架本身,您应该安装
Zephir
进行代码修改,并使用gdb
运行php命令(至少在linux上,不确定其他系统如何)
标准var_dump()
,echo
,printf
和die
它适用于所有phalcon对象,只需打印出要使用var_dump()(或其他输出函数)调试的变量,并在执行视图代码之前使用die()
。如果view
部分应用程序被执行,则很可能会替换调试打印
或者,您也可以传递变量以查看应用程序的一部分,只需使用
,或者如果您使用的是volt,则只需{{dump(variable)}
使用XDebug远程
这是我个人最喜欢的方式。是的,XDebug Remote与Phalcon配合使用非常好。我个人使用NetBeans,但您也可以使用其他IDE。这里有很多关于配置所有流行IDE的教程,所以我不再写了。请注意,Phalcon团队建议使用XDebug 2.2.3或更高版本以获得更好的兼容性
您可以在中阅读有关调试Phalcon的更多信息调试基于Phalcon的应用程序的最佳方法是在应用程序的引导部分包含以下代码片段,一旦出现任何错误(应用程序级别),您将获得非常有用的信息,如下所示
- 回溯
- 请求
- 服务器
- 包括文件
- 内存(这非常有用)
调试基于Phalcon的应用程序的最佳方法是将下面的代码片段包含到应用程序的引导部分,一旦出现任何错误(应用程序级),您将获得非常有用的信息,如下所示
- 回溯
- 请求
- 服务器
- 包括文件
- 内存(这非常有用)
不确定,但是如果你是这个意思的话,那么xdebug、phalcon 3和PHP7目前存在一些问题。也许在PHP5上它仍然可以工作。基本上,我们可以做的是扩展phalcon类——比如创建代理,重写需要调试和调用phalcon父类的方法。通过这种方式,您至少可以使用xdebug调试方法调用——当然,您仍然无法访问已编译c代码中的属性。您只能通过这种方式控制方法调用/参数-与phalcon扩展的方法中的方法变量作用域不同。在得到一些答案后,我仍然没有幸使用Xdebug,但从我阅读的内容来看,这很难奏效。我放弃了Phalcon,因为我可以更快地学习另一种语言,而不是搞清楚调试——我使用的Python具有出色的调试能力