On Fri, Jul 25, 2025, at 11:33 AM, Daniel Scherzer wrote:
> Hi internals,
>
> The #[\Attribute] attribute is used to mark classes as being usable as 
> attributes. It currently does not trigger any error if added to a 
> trait, interface, enum, or abstract class. However, if any of those 
> *were* used as an attribute, calling ReflectionAttribute::newInstance() 
> would fail; if you are not going to call 
> ReflectionAttribute::newInstance(), then you don't really need to mark 
> the trait/interface/enum/abstract class as an attribute.
>
> I have proposed https://github.com/php/php-src/pull/19154 to add 
> validation to the #[Attribute] attribute, and it was suggested that I 
> post here on the mailing list in case there were any objections. So, 
> are there?
>
> -Daniel

I just checked AttributeUtils, and I don't *think* this will cause an issue.  I 
do support interfaces and opt-in inheritance, but I don't believe it actually 
tags an interface with #[Attribute] anywhere.

--Larry Garfield

Reply via email to