This is NOT good.
May I suggest removing the @ symbol from dl.
Either that, or make sure that displayError actually does something in config.inc.php
Nothing worse than trying to debug a blank screen.
Actually, the reason why displayError does nothing is because dl() dies a "fatal" death in some cases and script execution stops then and there. This is no screen output (as long as @ is in place).
You NEED to keep displaying fatal errors. If you want to suppress WARNINGS/NOTICES then [temporarily] modify error_reporting
$oldLevel = error_reporting(E_ERROR); // suspend fluff
// insert dangerous statement here
error_reporting($oldLevel); // put it back