On Tue, Jul 25, 2023, at 6:09 PM, Ollie Read wrote:
> Hello all,
>
> A while back, I wrote a lengthy post about suggested improvements for 
> reflection, but I would like to come back to address additional methods 
> for dealing with attributes. (I have an open git issue here: 
> https://github.com/php/php-src/issues/8489)
>
> I'd like to introduce the following three methods on all reflect 
> classes that have attributes:
>
> hasAttribute(string $name, int $flags = 0): bool
>
> Uses the same filtering as getAttributes(), but returns true if a match 
> is found, false otherwise.
>
> getAttribute(string $name, int $flags = 0): ?ReflectionAttribute
>
> Also uses the same filtering as getAttributes(), except that it will 
> return an instance of ReflectionAttribute if one is found, null if none 
> are found, and will throw an exception of more than 1 is found.
>
> getNumberOfAttributes(?string $name = null, int $flags = 0): int
>
> Again, uses the same filtering as getAttributes(), and is to attributes 
> what getNumberOfParameters() is to parameters. I appreciate that this 
> methods use may not be obvious, but I wanted to include it for 
> consistency.
>
> I'm relatively confident that I have worked out the best method of 
> implementing these, and contributors have agreed to merge a PR, which I 
> will start shortly, should there be no objections.
>
> ---
> Best Regards,
> *Ollie Read*

I'm not opposed to these, but would this be a good time to also add an 
interface for attributable reflection objects, so that we can type against 
that?  These methods would all then go on that interface.

--Larry Garfield

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to