PHP eAccelerator conflicts with script execution
-
05-07-2021 - |
Question
I have a strange thing happening since I turned on eAccelerator on my development local server. It happens regardless of the script context, so it doesn't matter if I run this code as it is in a separate .php or actually expect a thrown error to be caught in the application.
this gives a 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";
}
but if I turn eAccelerator off everything just works. well..at least this problem doesn't occur.
i use Uniform server's latest install with php 5.4.7 and Apache 2.4.3 on a win xp 32 sp3
EDIT: It's the same with namespaced and non-namespaced files. EDIT: I corrected the syntax mistakes >.> terribly sorry.
Solution
You should only run one of the two: eaccelerator or APC. They both do the same thing, opcode cache your compiled PHP. I would go with APC since you can also use its user cache for in memory caching--most frameworks support using it as a cache backend.
OTHER TIPS
Well not sure if that is only because you made up that simplified test case.
But in the code you offer the try
block is never closed. So it might well be that the exception you throw never gets caught...