Re: consider reverting E_ALL with E_STRICT

From: Date: Wed, 07 Mar 2012 02:12:40 +0000
Subject: Re: consider reverting E_ALL with E_STRICT
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message
And the first time your network infrastructure has even a tiny hiccup you broadcast your database name/username/password to the whole world. Not an excellent business decision. I've yet to see a php notice / warning echo out a name/password etc... - anyway these are normally not public services... - no big deal.
Here's the reality, bugs exist, Users find them.. Users are really really bad at describing and reporting them "It does not work"... I can take 3-4 rounds (and a few days) of back and forth before you actually discover what the real problem is, it wastes their time (and annoys them) and yours.. Where as now. they report a screenshot or pasted error.. the problem is fixed in minutes.. with the line number and file of where the problem is.... Client is very happy, and pays quicker ;) Actually this impression that the group espouses 'do not have display errors on in production' does not apply to all situations, it may be good for your new dotcom super site, but for applications that have to work correctly and run business operations, the value proposition can be the other way round.
Configuring the server to mail error logs to you isn't hard. The end result is actually faster and more reliable than waiting for a user to care enough to email you about a problem they see. Reminds me of the backup emails, you set up warnings for the backup failing, but when the server fails, you find out the backup emails failed months ago.... Or you send out a daily backup email and everyone learns to ignore it.. It's a nice idea, but only sending me warnings/errors on this directory but not the other one and make sure it get's sent even if there is a fatal error.. get's complicated quickly. KISS is what tends to works here.
Did anyone actually argue about the downsides of this? Basically the cons come down to old generating more non-fatal errors than it did before. This is a minor BC break roughly on par with plenty of other small breaks introduced in 5.4. I do see something important in all this though. I think the documentation should explicitly state that E_ALL means absolutely everything, now and forever. We got into this mess in the first place because people didn't want to change the meaning of E_ALL when E_STRICT was added. We're redefining E_ALL now to include E_STRICT, so it means all again, but I think we need a future compatible definition that clarifies that this means all present errors, PLUS any future errors that get added for any reason. This way adding new error types would not need to be considered a BC break. It is a minor BC break, when you spend an hour clearing up the mess, it's not too bad, but I had to ask, was this hour a waste of my time, did it help the code quality, and what where the benefits.. I could not see any, only the waste of time..
I think the fact is now, that most of the code I work with will have to do error_reporting(E_ALL & ~E_STRICT). I'm guessing it's unlikely that more error codes will be added that are as valueless as E_STRICT, so I think it is something to live with now..., Just in hindsight it may not have been a great decision adding it to E_ALL... Regards Alan
John Crenshaw Priacta, Inc.


Thread (14 messages)

« previous php.internals (#58712) next »