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*