Re: [RFC] make Reflection*#setAccessible() no-op

From: Date: Sun, 13 Jun 2021 19:15:53 +0000
Subject: Re: [RFC] make Reflection*#setAccessible() no-op
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-114845@lists.php.net to get a copy of this message
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)

« previous php.internals (#114845) next »