On 12/08/2017 04:25, Stanislav Malyshev wrote:

The "args" part of this contains full object references to anything that
happens to have been a function argument in the stack, and causes two
I think it makes sense to make exception not to collect args. In fact, I
think this may also be one of rare cases where new ini setting would be
appropriate, where the default could be the old way (at least for now,
for BC), and recommended production setting would be off.

My only concern is if anyone is using this data for anything other than debugging - e.g. if they were somehow extracting extra context about the exception by traversing the backtrace to a particular point and grabbing the arguments. That feels like a horrible hack to me, but that doesn't mean someone isn't relying on it.

An interesting side effect of an ini setting, though, is that it could in turn be made to raise deprecation warnings at some point, whereas just accessing the 'args' element of an array is pretty hard to detect. So for instance, we could theoretically have: 7.3, add ini setting defaulting to on; 7.4, change default to off and raise deprecation notice if it's turned on; 8.0, remove feature, error if ini setting is not set to on (ignore if set to off for smoother upgrades).


Rowan Collins

PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to