Stopping (most) WSoD in PHP

Attempting to remove the white screen of death from PHP scripts.

Marcus Povey

Anyone who has done any development with PHP will be familiar with the infamous White Screen of Death; a blank browser window indicating that something horrible has gone wrong. A common cause, for me at least, is making a method call on a null object – easy to do in an object oriented architecture.

The exact reason as to why your script has gone splat will be reported in the log file, but from a UX standpoint, giving a blank screen to your customers is far from ideal. It is particularly problematic in complicated platforms like Elgg and Known, which use output buffering and have a plugin architecture.

Here’s a quick bit of code which can catch many (all?) of these fatal errors, and at least echo something. A variation of this is already in Known. Place the code somewhere towards the start of your script…

Hope this is useful to you!

5 responses to “Stopping (most) WSoD in PHP”

  1. Yeah, some things still aren’t caught – so for example, if you redeclare a function. But, it does catch things like calling unrecognised methods or functions – which can be handy if you’re running plugins that require modules etc.

Leave a Reply