PHP eAccelerator与脚本执行冲突

时间:2012-10-06 13:12:02

标签: php try-catch eaccelerator

自从我在开发本地服务器上打开eAccelerator后,我发生了一件奇怪的事情。 无论脚本上下文如何都会发生这种情况,因此如果我运行此代码并不是因为它在一个单独的.php中,或者实际上期望在应用程序中捕获抛出的错误。

这会产生Fatal Error: Uncaught exception

try {
    throw new \Exception("Get out of here asap.");
    echo 'We never make it to here..';
 }  
 catch ( \Exception $e ) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
 }

但如果我关闭eAccelerator,一切正常。好吧..至少这个问题不会发生。

我使用Uniform服务器的最新安装与php 5.4.7和Apache 2.4.3在win xp 32 sp3上

编辑:命名空间和非命名空间文件也是如此。 编辑:我纠正了语法错误>。>非常抱歉。

2 个答案:

答案 0 :(得分:0)

您应该只运行以下两个中的一个:eaccelerator或APC。他们都做同样的事情,操作码缓存你编译的PHP。我会选择APC,因为你也可以在内存缓存中使用它的用户缓存 - 大多数框架都支持将它用作缓存后端。

答案 1 :(得分:0)

不确定这是否只是因为你编写了简化的测试用例。

但是在您提供的代码中,try块永远不会关闭。所以很可能你抛出的异常永远不会被抓住......