Use error handlers rather than the error suppression operator
|Reported by:||rmccue||Owned by:|
In various places in core (and included libraries, such as pclzip, FTP and phpass), the error suppression operator is used to suppress warnings and notices. However, this also suppresses fatal errors, which makes it a huge pain for debugging.
The big one here is fopen, where it is used to suppress warnings when opening a handle fails. For normal files, this is fine since the only errors generated are warnings. When using streams and custom stream handlers, these can generate errors which are really hard to find with this.
(I ran into this with the App Engine plugin, where the SDK method generates a fatal error if the mode is a, which is used with error suppression in win_is_writable().)