Am 16.09.2019 um 21:32 schrieb Nikita Popov [email protected]:

Thanks for chiming in Rasmus. A few brief thoughts on recent discussions: The RFC process encompasses language changes (breaking or non-breaking),

as well as policy and process decisions. We have a very wide selection of

precedent cases that affirm this.

It feels to me that it gradually changed into that.

And while the initial RFCs seemed innocuous policy and process decisions they are now used as a precedent. Should the first non-technical RFCs have been examined more closely due to this? Maybe. But just because it wasn't done doesn't mean the situation cannot be reassessed again. Just because there are now policy and process RFCs does not mean we could take a step back and limit RFCs again.

Just to be clear: I'm not demanding anything, I'm just wary of the "that's just the way it is, look at previous examples" argument.

The "undefined variables" vote that sparked the current controversy

currently sits at 29 in favor of exception and 20 against. That's

significantly below the acceptance threshold for RFCs. Things are working

as they should: The question has been discussed, put up to vote, and the

vote has decided against this course of action (as of this writing, though

I expect this to be representative of the final result.)

I agree but disagree at the same time:

First of all the discussion was unpleasant which I don't see as "working as it should".

And while I do think the discussion about undefined variables did clear some things up I also think it distracted from other points in the RFC.

I personally chose my battle to focus on undefined variables because it was the biggest pain point. But there are lots of other conversions to Exceptions which were left in the main bulk of things even though they have similarities with undefined variables. A foreach over null might indicate a problem but it is well defined and might occur in correctly working code.

Yes, a warning might be appropriate but stopping execution is a different beast again.

As a personal failure, I should have made the voting option for "undef

vars throw exception" be "undef vars throw warning in PHP 8 and exception

in PHP 9", which would have provided for a long-term migration timeline for

affected code. I apologize for pushing an unnecessarily aggressive option

here.

Maybe it was quite the opposite: It forced the discussion to happen now. And while it was unpleasant I'm worried that otherwise it would have legitimised making undefined variables an Exception because "we already promoted it to a warning so we all agree that it is bad" which would be wrong.

Sure, maybe by the time PHP 9 comes around people agree that an Exception is the right thing to do. But using warnings as a door-opener for exceptions is something to be considered very carefully.