This code in example.settings.php
// Don't show any errors.
$conf['error_level'] = ERROR_REPORTING_HIDE;
error_reporting(0);
ini_set("display_errors", 0);
...should not set error_reporting to 0.
The result of doing so is that errors (of any severity) do not get logged. So even a Fatal error will just produce a mysterious 50x / WSOD with no clues to aid troubleshooting.
It may be valid to customise the error_reporting setting for different environments, but setting it to 0 is almost never a good idea IMHO.
As far as I can see the example sets this to 0 and then it's currently not set to anything else by devinci.
To verify what error_reporting(0) does, try making a deliberate code error (e.g. call an undefined function) somewhere that will be parsed after settings.php, and note the lack of any useful information about what's gone wrong.
Comments
Comment #2
frankcarey commentedQuite right. I think the idea was to never allow errors to the screen but this is overkill if it doesn't allow errors to be reported in the watchdog and php error logs.
Seems like the following would be a good production default. I'll update the default accordingly.
Comment #3
mcdruid commentedFor production I'd probably go for:
...which is the PHP default since 5.3, but yes - just excluding Notices would get rid of the majority of the noise on most sites.
Thanks!