【发布时间】:2011-07-23 09:01:12
【问题描述】:
好的,所以我已经编写了一个集成到 Magento 电子商务平台内部的第三方订单管理解决方案,该平台构建在 Zend 框架之上。在我的本地机器和本地开发服务器上一切正常。两台服务器都使用 PHP 5.2.x。当部署到使用 PHP 5.3.3 的暂存服务器时,我的部分代码中出现此错误
PHP 致命错误:在第 0 行的 Unknown 中抛出没有堆栈帧的异常
我尝试注释掉代码片段,看看我可以将其缩小到哪里,但运气不佳。我在 Magento 观察者中启动代码,该观察者调用我创建的模型,该模型也在会话中设置一些变量。我有很多调用其他类的方法,例如我的观察者调用我的订单模型,它也调用我的客户模型,并且它们都在它们的类中调用了一些不同的方法。通过记录和注释行来在服务器上调试它有点困难,我没有取得好的进展。
从我所做的研究来看,这在我看来更像是我试图为会话设置的东西正在析构函数中消亡。在我的观察者方法返回之前,我尝试在它的末尾使用 session_write_close(),这样它可能会在早些时候向我显示错误,但它实际上使我的程序没有死,并且它像预期的那样工作。我不确定我是否愿意把它留在那里,因为我确信它可能会弄乱其余的流程,但我对此并不了解。
我只是想弄清楚调试它的最佳方法是什么。我不明白为什么在将它放在那里时它会起作用,以及在析构函数中可能会死什么,显然我没有在析构函数中抛出异常,但我正在做的事情是。但在我将代码放在暂存服务器上之前,它一直运行良好。顺便说一句,它也在使用 nginx 而不是 apache。
【问题讨论】:
-
为什么不使用 Zend_Session ?既然你是在 zend 框架中做的,为什么不全力以赴:)
-
我正在使用 Magento 的会话模型。
标签: php zend-framework session magento