A few issues with the RFC so far:

 * `ReflectionReference` seems to be designed around arrays only: maybe
`ReflectionArrayKeyReference` or such?
 * Can the `getId()` return type be restricted to either `int` or `string`?
Why is it a union type right now? Technical limitation?
 * `ReflectionReference#__construct()` should be `private`, since it is
unusable anyway
 * `fromArrayElem` => `fromArrayElement`
 * is this open for inheritance? If so, what scenarios would fit inheriting
from `ReflectionReference`?
 * what happens when `ReflectionReference::fromArrayElement()` is given
invalid data, such as non-existing keys? I'd expect it to throw.
 * instead of `$ref1->getId() === $ref2->getId()`, `$ref1->matches($ref2)`
or such.
 * what are possible scenarios for getting the identifier as a primitive,
and then storing it somewhere (like an array of reference identifiers)?
 * There seems to be a lot of design around `ReflectionReference#getId()`
to avoid leaking internal pointer information: can it be completely
dropped, if we have `$ref1->matches($ref2)` instead?

Marco Pivetta

http://twitter.com/Ocramius

http://ocramius.github.com/


On Tue, Jan 15, 2019 at 11:16 AM Nikita Popov <nikita....@gmail.com> wrote:

> Hi internals,
>
> I'd like to propose the addition of a ReflectionReference class, as
> described in the following RFC:
> https://wiki.php.net/rfc/reference_reflection
>
> This topic was previously discussed at https://externals.io/message/102638
> .
> The TL;DR is that some libraries need a way to detect references and
> determine whether two references are the same. They previously used an ugly
> hack to achieve this, but this hack will no longer (reliably) work due to
> the introduction of typed properties, so we need to do something about this
> for the 7.4 release.
>
> Regards,
> Nikita
>

Reply via email to