Hi

Am 2026-05-12 22:37, schrieb Benjamin Außenhofer:
I am not convinced this is needed. At every call site of
$reflector->getAttributes() you could inject the reflector back into the
attributes.

I agree with Benjamin here and actually would go even further: Making attribute instances aware of their target feels like a layering violation. Attributes are intended to provide metadata, not behavior. The behavior can then be added by whoever is consuming the attribute.

The RFC itself contains one example with two possible use cases:

- Further narrowing down TARGET_CLASS targets. For that I feel the correct solution would be further splitting the target constants into TARGET_CLASS_ONLY, TARGET_INTERFACE, TARGET_TRAIT, etc.

- Adding side-effects to a constructor, specifically side-effects that need to rely on global state. This is the layering violation I mentioned above: This kind of logic should be performed by the service that is reading out and constructing the attribute - something that necessarily exists -, not by the attribute itself.

Best regards
Tim Düsterhus

Reply via email to