Re: [RFC] make Reflection*#setAccessible() no-op
Hi Marco Pivetta,
> I'm posting here to introduce a new simplification, as well as
> quality-of-life-improving RFC:
>
> https://wiki.php.net/rfc/make-reflection-setaccessible-no-op
>
> The RFC is quite minimal, and proposes removing any runtime behavior from
> ReflectionMethod#setAccessible() and
> ReflectionProperty#setAccessible(), making ReflectionMethod and
> ReflectionProperty accessible by default.
>
> The rationale is:
>
> * this API is probably coming from a copy-pasted java-ism (although I
> couldn't verify that, so I did not factor it into the RFC)
> * removes the last bit of mutable state from ReflectionProperty and
> ReflectionMethod
> * simplifies usage of the API
> * if I'm up to no good, I don't need to actually solemnly swear that i am
> up to no good (that's stuff for fantasy books)
>
> I don't really know what the deadline for 8.1 features is, but I assume
> it's coming up quite quickly, so friendly NikiC poked me to see if this
> long-standing patch of mine was still relevant.
>
> Should be short/sweet, but I'm looking forward to your feedback.
The deadline for new features for 8.1 is July 20: https://wiki.php.net/todo/php81
(with some discretion from the release managers, e.g. for amendments to changes already made in 8.1)
I think that isAccessible should be added if any applications actually did depend on
ReflectionException
being thrown for correctness - they could throw their own exception if isAccessible was false.
(e.g. for code meant to handle possibly undefined public typed properties by checking for
initialization
then getting the value)
I can't actually remember needing this personally, though, since
$obj->{$method}() could be used.
I've only used this to access private and protected properties/methods.
Regards,
Tyson
Thread (6 messages)