> On 9 Mar 2020, at 23:27, Benjamin Eberlei <kont...@beberlei.de> wrote:
> 
> 
> 
> On Mon, Mar 9, 2020 at 5:18 PM Stephen Reay <php-li...@koalephant.com 
> <mailto:php-li...@koalephant.com>> wrote:
> 
> 
> > On 9 Mar 2020, at 21:42, Benjamin Eberlei <kont...@beberlei.de 
> > <mailto:kont...@beberlei.de>> wrote:
> > 
> > Hi all,
> > 
> > I want to resurrect Dmitrys Attributes RFC that was rejected for 7.1 in
> > 2016 with a few changes, incorporating feedback from the mailing list back
> > then and from talking to previous no voters.
> > 
> > The RFC is at https://wiki.php.net/rfc/attributes_v2 
> > <https://wiki.php.net/rfc/attributes_v2>
> > 
> > A working patch is at https://github.com/beberlei/php-src/pull/2 
> > <https://github.com/beberlei/php-src/pull/2> though
> > work around the details is still necessary.
> > 
> > The RFC contains a section with common criticism and objections to
> > attributes, and I hope to have collected and responded to a good amount
> > already from previous discussions.
> > 
> > There is also a fair amount of implementation detail still up for debate,
> > which is noted in "Open Issues". I have pre-committed to one approach, but
> > listed alternatives there. On these issues I am looking for your feedback.
> > 
> > greetings
> > Benjamin
> 
> Hi Benjamin,
> 
> I can’t comment on the feasibility of this RFC or the patch, but I like the 
> approach it takes to this ‘problem’. I can already imagine a number of 
> ‘nicer’ ways to achieve similar/same results using this, so thanks for taking 
> up the baton!
> 
> My one small query/request is about the `Reflection*::getAttributes` method. 
> Is there a philosophical and/or technological reason for why it can only 
> ‘filter’ the attributes by a single given name, rather than being variadic 
> and filtering against multiple names (i.e. returning those that match any of 
> the given names)? I would imagine many uses (particularly within libraries) 
> would end up wanting to retrieve multiple attribute types they’re aware of 
> all at once, no?
> 
> The name filtering works when using a common base class or interface, so if a 
> library has a class "My\BaseAttribute" and all related attributes extend from 
> it, then in the code you can do:
> 
> $attributes = $reflectionClass->getAttributes(\My\BaseAttribute::class);
> 
> This would return all attributes matching.
> 
> 
> Cheers
> 
> 
> Stephen 


Ah! I had wondered if that type of filtering would be possible (another benefit 
of using classes for the attributes) but I didn’t see it mentioned, and 
wondered if the intention was to leave it to userland. 

Cheers

Stephen

Reply via email to